好文档 - 专业文书写作范文服务资料分享网站

C语言连接SQL数据库例子

天下 分享 时间: 加入收藏 我要投稿 点赞

连接到SAMPLE数据库,查询LASTNAME为JOHNSON的FIRSTNAME信息。 #include #include #include #include \ #include

EXEC SQL INCLUDE SQLCA; (1) main() {

EXEC SQL BEGIN DECLARE SECTION; (2) char firstname[13]; char userid[9]; char passwd[19];

EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT TO sample; (3) EXEC SQL

SELECT FIRSTNME INTO :firstname (4) FROM employee

WHERE LASTNAME = 'JOHNSON';(4)

printf( \ name = %s\\n\ firstname ); EXEC SQL CONNECT RESET; (5) return 0; }

上面是一个简单的静态嵌入SQL语句的应用程序。它包括了嵌入SQL的主要部分:

(1)中的include SQLCA语句定义并描述了SQLCA的结构。SQLCA用于应用程序和数据库之间的通讯,其中的SQLCODE返回SQL语句执行后的结果状态。

(2)在BEGIN DECLARE SECTION和END DECLARE SECTION之间定义了宿主变量。宿主变量可被SQL语句引用,也可以被C语言语句引用。它用于将程序中的数据通过SQL语句传给数据库管理器,或从数 据库管理器接收查询的结果。在SQL语句中,主变量前均有“:”标志以示区别。 (3)在每次访问数据库之前必须做CONNECT操作,以连接到某一个数据库上。这时,应该保证数据库实例已经启动。

(4)是一条选择语句。它将表employee中的LASTNAME为“JOHNSON”的行数据的FIRSTNAME查出,并将它放在 firstname变量中。该语句返回一个结果。可以通过游标返回多个结果。当然,也可以包含update、insert和delete语句。 (5)最后断开数据库的连接。

从上例看出,每条嵌入式SQL语句都用EXEC SQL开始,表明它是一条SQL语句。这也是告诉预编译器在EXEC SQL和“;”之间是嵌入SQL语句。如果一条嵌入式SQL语句占用多行,在C程序中可以用续行符“\\”。

c语言用vc连接sql server 2000

2009/11/02 09:34 [sql server ]

1.提取单条记录

//#import \//no_namespace,rename(\CoInitialize(NULL); _bstr_t varSource=\Source=*.mdb\//_bstr_t varSource=\Catalog=myDataBase;User Id=myUsername;Password=myPassword;\_ConnectionPtr m_pConnection(_uuidof(Connection)); m_pConnection->Open(varSource,\_RecordsetPtr m_pSet(_uuid(Recordset)); try {

m_pSet->Open(%%1,m_pConnection.GetInterfacePtr() adOpenDynamic,adLockPessimistic,adCmdText); }

catch(_com_error *e){ {

AfxMessageBox(e->ErrorMessage()); return; }

_variant_t var; CString %%2=\

long fldc=m_pSet->GetFields()->GetCount(); long i=0; try {

m_pSet->MoveFirst(); if(!m_pSet->adoEOF) {

for(i=0;i

var=m_pSet->GetCollect((long)i); var.ChangeType(VT_BSTR); %%2+=var.bstrVal; %%2+=\}

//m_pSet->MoveNext(); } }

catch(_com_error *e){

AfxMessageBox(e->ErrorMessage()); delete e; }

//m_pSet->MoveFirst(); CoUninitialize(NULL);

2.单值比较

//#import \//no_namespace,rename(\CoInitialize(NULL); _bstr_t varSource=\Source=*.mdb\//_bstr_t varSource=\Catalog=myDataBase;User Id=myUsername;Password=myPassword;\_ConnectionPtr m_pConnection(_uuidof(Connection)); m_pConnection->Open(varSource,\_RecordsetPtr m_pSet(_uuid(Recordset)); try {

m_pSet->Open(%%1,m_pConnection.GetInterfacePtr() adOpenDynamic,adLockPessimistic,adCmdText); }

catch(_com_error *e){ {

AfxMessageBox(e->ErrorMessage()); return; }

_variant_t var; try {

m_pSet->MoveFirst(); if(!m_pSet->adoEOF) {

var=m_pSet->GetCollect((long)0); var.ChangeType(VT_I2); int %%3=var.intVal; if(%%3==%%4) { %%5 }

//m_pSet->MoveNext(); }

catch(_com_error *e){

AfxMessageBox(e->ErrorMessage()); delete e; }

//m_pSet->MoveFirst(); CoUninitialize(NULL);

3.显示表格

//#import \//no_namespace,rename(\

CoInitialize(NULL); _bstr_t varSource=\Source=*.mdb\//_bstr_t varSource=\Catalog=myDataBase;User Id=myUsername;Password=myPassword;\_ConnectionPtr m_pConnection(_uuidof(Connection)); m_pConnection->Open(varSource,\//打开属性为默认(adModeRead(只读),adModeWrite(可写),adModeReadWrite(可读写)等)

_RecordsetPtr m_pSet(_uuid(Recordset)); try {

HRESULT hr=m_pSet->Open(%%1,m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockPessimistic,adCmdText); }

catch(_com_error *e){

AfxMessageBox(e->ErrorMessage()); }

if(SUCCESSED(hr)) {

//表打开成功 }

FieldsPtr p_fields=m_pSet->Fields; FieldPtr p_field; _variant_t var_index; LPCSTR field_name; int index=0;

_bstr_t bstr_field_name;

int countfields=p_fields->GetCount();

CString *Column=new CString[countfields];

CListCtrl *pList=(CListCtrl*)GetDlgItem(%%1);//IDC_LIST_TABLEDATA VERIFY(pList);

pList->DeleteAllItems();

for(index=0;index

var_index.vt=VT_I4; var_index.IVal=index;

p_field=p_fields->Item[var_index]; bstr_field_name=p_field->GetName(); field_name=(LPCSTR)bstr_field_name; Column[index]=field_name;

int ColumnWidth=Column[index].GetLength()*15;

pList->InsertColumn(index,field_name,LVCFMT_CENTER,ColumnWidth); }

int i=0;

_bstr_t vCol;

//pList->SetTextBkColor(RGB(122,200,122)); //pList->SetTextColor(RGB(0,0,200)); while(!m_pSet->adoEOF) {

pList->Insert(i,atoi(i));

for(int j=0;j

vCol=m_pSet->GetCollect((long)j); pList->SetItemText(i,j,vCol); }

m_pSet->MoveNext(); i++; }

CoUninitialize(NULL);

C语言与SQL SERVER数据库

1.使用C语言来操作SQL SERVER数据库,采用ODBC开放式数据库连接进行数据的添加,修改,删除,查询等操作。

step1:启动SQLSERVER服务,例如:HNHJ,开始菜单 ->运行 ->net start mssqlserver

step2:打开企业管理器,建立数据库test,在test库中建立test表(a varchar(200),b varchar(200))

step3:建立系统DSN,开始菜单 ->运行 ->odbcad32, 添加->SQL SERVER

名称:csql,服务器:HNHJ

使用用户使用登录ID和密码的SQLSERVER验证,登录ID:sa,密码: 更改默认的数据库为:test ...

测试数据源,测试成功,即DNS添加成功。 2.cpp文件完整代码

//##########################save.cpp##########################

C代码

1. #include 2. #include 3. #include

C语言连接SQL数据库例子

连接到SAMPLE数据库,查询LASTNAME为JOHNSON的FIRSTNAME信息。#include#include#include#include\#includeEXECSQLINCLUDE
推荐度:
点击下载文档文档为doc格式
4trvu1hh9i9kcek7hm3l8mqar1rud1013gr
领取福利

微信扫码领取福利

微信扫码分享