C语言连接SQL数据库.docxVIP

  • 3
  • 0
  • 约1.17万字
  • 约 8页
  • 2023-09-05 发布于天津
  • 举报
连接到SAMPLE数据库,查询LASTNAME为JOHNSON的FIRSTNAME信息。 #includestdio.h #includestdlib.h #includestring.h #includeutil.h #includesqlca.h EXECSQLINCLUDESQLCA;(1) main() { EXECSQLBEGINDECLARESECTION;(2) charfirstname[13]; charuserid[9]; charpasswd[19]; EXECSQLENDDECLARESECTION; EXECSQLCONNECTTOsample;(3) EXECSQLSELECTFIRSTNMEINTO:firstname(4) FROMemployee WHERELASTNAME=JOHNSON;(4) printf(Firstname=%s\n,firstname); EXECSQLCONNECTRESET;(5) return0; } 上面是一个简单的静态嵌入SQL语句的应用程序。它包括了嵌入SQL的主要部分: 中的includeSQLCA语句定义并描述了SQLCA的结构。SQLCA用于应用程序和数据库之间的通讯,其中的SQLCODE返回SQL语句执行后的结果状态。 在BEGINDECLARESECTION和ENDDECLARESECTION之间定义了宿主变量。 宿主变量可被SQL语句引用,也可以被C语言语句引用。它用于将程序中的数据通过SQL语句传给数据库管理器,或从数据库管理器接收查询的结果。在SQL语句中,主变量前均有“:”标志以示区别。 在每次访问数据库之前必须做CONNECT操作,以连接到某一个数据库上。这时,应该保证数据库实例已经启动。 是一条选择语句。它将表employee中的LASTNAME为“JOHNSON”的行数据的FIRSTNAME查出,并将它放在firstname变量中。该语句返回一个结果。可以通过游标返回多个结果。当然,也可以包含update、insert和delete语句。 最后断开数据库的连接。 从上例看出,每条嵌入式SQL语句都用EXECSQL开始,表明它是一条SQL语句。这也是告诉预编译器在EXECSQL和“;”之间是嵌入SQL语句。如果一条嵌入式SQL语句占用多行,在C程序中可以用续行符、\”。 c语言用vc连接sqlserve11/0209:34[sqlserver].Q1.提取单条记录//#importC:\ProgramFiles\CommonFiles\System\ADO\msado15.dll\//no_namespace,rename(〃EOF〃,〃adoEOF〃),named_guidsCoInitialize(NULL);_bstr_tvarSource=〃Provider二Microsoft.Jet.OLEDB.4.0;DataSource=*.mdb〃;//_bstr_tvarSource=〃DataSource二myServerAddress;InitialCatalog二myDataBase;UserId=myUsername;Password=myPassword;_ConnectionPtrm_pConnection(_uuidof(Connection));m_pConnection-Open(varSource,〃〃,〃〃,adModeUnknow);_RecordsetPtrm_pSet(_uuid(Recordset));try(m_pSet-Open(%%1,m_pConnection.GetInterfacePtr()adOpenDynamic,adLockPessimistic,adCmdText);}catch(_com_error*e)((AfxMessageBox(e-ErrorMessage());return;}_variant_tvar;CString%%2二〃〃;longfldc=m_pSet-GetFields()-GetCount();longi=0;try(m_pSet-MoveFirst();if(!m_pSet-adoEOF)(for(i=0;ifldc;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());deletee;}//m_pSet-MoveFirst();CoUninitialize(NULL);单值

文档评论(0)

1亿VIP精品文档

相关文档