热情软件屋

 

如何在前台DOS环境下直接调用后台的MS SQL Server 7.0


编号:QA002319
建立日期: 1999年12月26日 最后修改日期:2001年3月22日
所属类别:

wsd:
    操作系统:dos window nt
    编程工具:c
    问题:后台是Win NT 数据库是MS SQL Server 7.0,前台是DOS,现在想在前台DOS环境下直接调用后台的MS SQL Server 7.0,我想应该用C。但不知应该如何处理?不知您是否有这方面的例子,可否指点一下,谢谢!

回答:

    Use DB-Libary! See MS SQL Developer Document.
    佚名的意见:
    MS SQL7.0 安装盘有个目录叫client,其下有win16和dos的子目录,里面有DB-Libary的静态连接库及例子程序。具体的函数看SQL7的BOOKS ONLINE。
    
    彭锐的意见:
    // cl test.cpp -o test.exe /link ntwdblib.lib
    #define DBNTWIN32
    #include <windows.h>
    #include <sqlfront.h>
    #include <sqldb.h>
    
    dbinit();
    login=dblogin();
     DBSETLUSER(login, "sa");
     DBSETLPWD(login, "");
     DBSETLAPP(login, "server");
     dbsetlogintime(10);
     dbproc=dbopen(login, NULL);
     dbfreelogin(login);
     dbuse(dbproc, "sms");
     while(nStatus == FAIL){
     dbcmd(dbproc, "SELECT ISNULL(MAX(GLOBAL_ID), 0) FROM TICKET");
     dbsqlexec(dbproc);
     if(dbresults(dbproc) == SUCCEED){
     dbbind(dbproc, 1, FLT8BIND, (DBINT)0, (BYTE*)&global_id);
     while(dbnextrow(dbproc) != NO_MORE_ROWS){
     global_id_max=global_id;
     }
     global_id_max++;
     dbfreebuf(dbproc);
     sprintf(insertTicketSql, "INSERT INTO TICKET VALUES(%lf, '%s', '%s', '%s', '%s', '%s', '%s', '%s')", global_id_max, ticket_id, custom_type, time_limit, important_level, icp_mode, icp_ask, chFullDate);
     dbcmd(dbproc, insertTicketSql);
     nStatus=dbsqlexec(dbproc);
     }
     }
     dbfreebuf(dbproc);
     dbcancel(dbproc);
     memset(selectReturnSql, 0x0, BUFFER_SIZE);
     sprintf(selectReturnSql, "SELECT HL_CONTENT FROM HL WHERE (HL_DATE='%s')", chDateSelect);
     dbcmd(dbproc, selectReturnSql);
     dbsqlexec(dbproc);
     if(dbresults(dbproc) ==SUCCEED ){
     dbbind(dbproc, 1, STRINGBIND, (DBINT)0, (BYTE*)icp_return);
     if(dbnextrow(dbproc) == NO_MORE_ROWS){
     isOK=false;
     }
     else{
     isOK=true;
     }
     }
     memset(s, 0x0, BUFFER_SIZE);
     if(isOK){
     ConstructSuccessfulReturn(s, ticket_id, icp_return);
     }
     else{
     ConstructFailedReturn(s, ticket_id);
     }
     dbclose(dbproc);
    dbexit();
     return;
    //希望有所帮助

此问题由John Liu回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio