#include <stdio.h>
#include <stdlib.h>
EXEC SQL INCLUDE sqlca;
main()
{
    EXEC SQL BEGIN DECLARE SECTION;
    char first_name[50];
    char last_name[] = "White";
    EXEC SQL END DECLARE SECTION;
    
    EXEC SQL CONNECT TO HOME-54XK1BBA18.pubs
        USER sa.123;    EXEC SQL SELECT au_fname INTO :first_name
        from authors where au_lname = :last_name;    printf("first name: %s\n",first_name);
    return (0);}不知道如何能连接到数据库拷贝到该目录下。
5)连接方式:经预处理后的c文件就可以用c的编译器进行编译连接了。
使用Visual C++ 6.0进行编译连接,连接方式是动态连接,用到动态链接库SQLakw32.dll,sqlaiw32.dll;此两文件已经随同binn.rar的其他内容,被拷贝到C:\Program Files\Microsoft SQL Server\MSSQL\Binn下;但仍然需要把该路径加到系统的路径变量中,以使得程序运行时能找到这两个文件。
1:把该两文件拷贝到操作系统目录下的子目录system32中
2:把C:\Program Files\Microsoft SQL Server\MSSQL\Binn加到系统环境变量path中。“我的电脑”->“属性”->“高级”->“环境变量”->“path,编辑”
6) 把devtools.rar解压到SQLServer的系统目录下,本机SQLServer的系统目录是C:\Program Files\Microsoft SQL Server。
7)初始化Visual C++ 6.0 编译器环境,运行文件:\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
8)初始化SQLServer的预编译环境,运行文件:\devtools\samples\esqlc\setenv.bat。
9) 初始化Visual C++ 6.0环境。以下所有项设为第一项
Tools->options->directories->Include 
Files: C:\Program Files\Microsoft SQL Server\devtools\include
Tools->options->directories->Lib
Files:C:\Program Files\Microsoft SQL Server\devtools\x86lib
10)新开一个c 的工程或项目,project->Settings->Link->Object/Library Modules,添加库文件:SQLakw32.lib和Caw32.lib 
  已进行以上相关设置了啊……

解决方案 »

  1.   

    #include    <windows.h>      #include    <stdio.h>    EXEC SQL BEGIN DECLARE SECTION; 
    char deptname[20]; 
    char HSno[9]; 
    char HSname[20]; 
    char HSsex[2]; 
    int HSage; 
    int NEWAGE; 
    EXE SQL END DECLARE SECTION; 
    long SQL INCLUDE sqlca; int main() 

    int count=0; 
    char yn; 
    printf("Please choose the department name(CS/MA/IS):"); 
    scanf("%s",&deptname); 
    EXEC SQL CONNECT TO StarVally_Bak USER "MY-TOMATO\Y.Yang"/"lakewalker" 
    EXEC SQL DECLARE SX CURSOR FOR 
    SELECT Sno,Sname,Ssex,Sage 
    FROM "S-T".Student 
    WHERE SDept=:dept 
        EXEC SQL OPEN SX; 
    for(;;) 

    EXEC SQL FETCH SX INTO :HSno, :HSname, :HSsex, :HSage; 
    if(sqlca.sqlcode!=0) 

    break; 

    if(count++==0) 
    printf("\n% -10s % -20s % -10s % -10s\n","Sno","Sname","Ssex","HSage"); printf("% -10s % -20s % -10s % -10d\n",HSno,HSname,HSsex,HSage); printf("UPDATE AGE(y/n)?"); 
    do 

    scanf("%C",&yn); 

    while(yn!='N'&&yn!='n'&&yn!='Y'&&yn!='y'); if(yn=='Y' ¦ ¦yn=='y') 

    printf("INPUT NEWAGE"); 
    scanf("%d",&NEWAGE); 
    EXEC SQL UPDATE Stduent 
    SET Sage=:NEWAGE 
    WHERE CURRENT OF SX; 

    } EXEC SQL CLOSE SX; 
    EXEC SQL COMMIT WORK; 
    EXEC SQL DISCONNECT TEST; 
      

  2.   

     ADO(ActiveX Data Object)是Microsoft数据库应用程式研发的新接口,是建立在OLE DB之上的高层数据库访问技术,不但简单易用,并且不失灵活性.不失为C 利用数据库快速研发的不错选择。  理论就不用我在这儿费话了,网上有很多,但光是理论,也不是不够的,ADO访问数据的方法很灵活,容易让人混淆.网上大部分的实例都是基于MFC的,数据库也是ACCESS多,这儿我写了一个C 语言访问MS SQL2000的实例,希望对比我还菜鸟的菜鸟有所帮助。   二、建库  首先在SQL2000企业管理中,建立一个数据库student,并创建一个表stu_info字段和值如下:snum sname sage ssex smajor 
    200113801 本拉登 23 男 电脑科学 
    200104205 张巧巧 25 女 旅游管理 
    200113802 张学友 26 男 电脑科学 

      三、访问  程式清单如下:(win2000 VC6.0)
    /*******************************************************************
    利用ADO访问MS SQL2000
    需要: 【1】输出stu_info表内的每一条记录 
    【2】添加一条新记录
    【3】删除名字为"本拉登"的记录 
    */ 
    #import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
    no_namespace rename("EOF", "EndOfFile")
    #include <iostream>
    #include <iomanip> //for setw()
    using namespace std;
    class STU
    {
     public:
      char snum[10]; //学号 
      char sname[10]; //姓名 
      char ssex[2]; //姓别 
      long sage; //年龄 
      char smajor[20]; //专业 
     public:
      STU(){}
      ~STU(){}
    }; int main()
    {
     STU student;
     ::CoInitialize(NULL); // 初始化OLE/COM库环境 ,为访问ADO接口做准备 _RecordsetPtr m_pRecordset("ADODB.Recordset");
     _ConnectionPtr m_pConnection("ADODB.Connection"); ...  _bstr_t bstrSQL("select * from stu_info"); //查询语句 
     char * query_cmd = "DELETE FROM stu_info WHERE sname = '本拉登'"; try
     {
      // 创建Connection对象
      m_pConnection.CreateInstance("ADODB.Connection");
      // 配置连接字符串,必须是BSTR型或_bstr_t类型
      _bstr_t strConnect= "Provider=SQLOLEDB;Server=(local);Database=student; uid=sa; pwd=123;";
      //若数据库在网络上则Server为形如(192.168.1.5,3340)
      //用户sa和密码123只是针对我的库 
      m_pConnection->Open(strConnect,"","",adModeUnknown);
      if(m_pConnection==NULL)
       cerr<<"Lind data ERROR!\n";
      // 创建记录集对象
      m_pRecordset.CreateInstance(__uuidof(Recordset));
      // 取得表中的记录
      m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),
      adOpenDynamic,adLockOptimistic,adCmdText);  _variant_t vsnum,vsname,vsage,vssex,vsmajor; //对应库中的snum,sname,sage,ssex,smajor
      cout << "学号 姓名 年龄 姓别 专业";
      cout << "\n----------------------------------------------------------------\n"; 版权申明:本站文章均来自网络,如有侵权,请联系028-86262244-215,我们收到后立即删除,谢谢!   while (!m_pRecordset->EndOfFile)
      {
       vsnum = m_pRecordset->GetCollect(_variant_t((long)0));//这儿给字段编号和字段名都能够 
       vsname = m_pRecordset->GetCollect("sname");
       vsage = m_pRecordset->GetCollect("sage");
       vssex = m_pRecordset->GetCollect("ssex");
       vsmajor = m_pRecordset->GetCollect("smajor");
       if (vsnum.vt != VT_NULL && vsname.vt != VT_NULL && vsage.vt != VT_NULL
    && vssex.vt != VT_NULL && vsmajor.vt != VT_NULL)
       {
        cout.setf(ios::left);
        cout << setw(14) << (char*)(_bstr_t)vsnum;
        cout << setw(14) << (char*)(_bstr_t)vsname;
        cout << setw(8) << vsage.lVal;
        cout << setw(8) << (char*)(_bstr_t)vssex;
        cout <<setw(20) << (char*)(_bstr_t)vsmajor;
        cout.unsetf(ios::left);
        cout << endl;
       } 
       m_pRecordset->MoveNext(); ///移到下一条记录
      }
      cout << "\n----------------------------------------------------------------\n"; .. 
      cout << "\n请输入您要添加的学生信息\n"; 
      cout << "学号:";
      cin >> student.snum;
      cout << "\n姓名:";
      cin >> student.sname;
      cout << "\n年龄:";
      cin >> student.sage; 
      cout << "\n姓别:";
      cin >> student.ssex;
      cout << "\n专业:";
      cin >> student.smajor;
      m_pRecordset->MoveFirst(); //移动到第一条记录
      m_pRecordset->AddNew(); ///添加新记录
      m_pRecordset->PutCollect("snum",_variant_t(student.snum));
      m_pRecordset->PutCollect("sname",_variant_t(student.sname));
      m_pRecordset->PutCollect("sage",_variant_t(student.sage));
      m_pRecordset->PutCollect("ssex",_variant_t(student.ssex));
      m_pRecordset->PutCollect("smajor",_variant_t(student.smajor));
      m_pRecordset->Update();  m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
      m_pRecordset->Close(); // 关闭记录集
     } // 捕获异常
     catch(_com_error e)
     { 
      // 显示错误信息
      cerr << "\nERROR:" << (char*)e.Description();//抛出异常
     }
     if(m_pConnection->State)
      m_pConnection->Close(); ::CoUninitialize(); return 0;
    }