CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  Sybase

SQL语言嵌入C++!!!!!

楼主LBN1012(星空)2002-11-07 12:52:17 在 其他数据库开发 / Sybase 提问

有谁知道在C++中嵌入使用SQL语言要什么头文件啊,或者是要用什么特别的方法啊  
  我在TC++3.0中直接写  
  EXEC   SQL   INCLUDE   SQLCA编译不通过!!! 问题点数:50、回复次数:10Top

1 楼shanhan_27(单韩)回复于 2002-11-13 15:02:10 得分 5

a03:066#2  
        :select   convert(char(1),business_id)+  
                        right(space(9)+rtrim(convert(char(9),call_times)),9)+  
                        right(space(9)+rtrim(convert(char(9),call_duration)),9)+  
                        right(space(9)+rtrim(convert(char(9),cost_total)),9)+  
                        right(space(10)+rtrim(convert(char(10),cost_call)),10)+  
                        right(space(10)+rtrim(convert(char(10),cost_agent)),10)+  
                        right(space(10)+rtrim(convert(char(10),cost_addition)),10)+  
                        convert(char(8)   ,count_date)  
              from   account_total  
            where   province_id=0   and   area_id=0  
                and   county_id=0   and   count_date=convert(datetime,'?');  
  看得懂吗Top

2 楼LBN1012(星空)回复于 2002-11-13 22:10:42 得分 0

楼上的同志,这些查询语句有什么用?难道能嵌入C++??  
  继续听各位指教!Top

3 楼hzhzh(玩笑)回复于 2002-11-19 09:22:12 得分 5

嵌入式的语句需要经过sybase预编译Top

4 楼sytrade50(安)回复于 2002-11-21 23:08:08 得分 5

你到   sybase网站去看看,   有说明的.Top

5 楼mightyjiang(冰刃)回复于 2002-11-22 08:55:13 得分 5

EXEC   SQL   INCLUDE   SQLCA这是proC的语法应存为*.pc格式编译具体你可找找proC的书看看Top

6 楼linzx()回复于 2002-11-29 16:05:38 得分 5

可以试一下以下代码  
  extern   "C"   {  
  EXEC   SQL   INCLUDE   SQLCA  
  }Top

7 楼kmcyz(阿成)回复于 2002-11-29 16:17:34 得分 10

//   ODBC   SQL支持  
  #include   <windows.h>  
  #include   "sql.h"  
  #include   "sqlext.h"  
  #include   "odbcinst.h"  
   
  bool   WriteToDB(char   *   dsnname,   char   *   sqlstr);  
   
  int   main(int   argc,   char*   argv[])  
  {  
  char*   dsn="cqcf";  
  // char*   sqlstr="INSERT   INTO   tblAlarm   (dt,tm,deviceid,curval,msg)   "  
  //                         "VALUES   ('2002-10-8',   '14:3:5','23',2343,'device   23   error')";  
  char*   sqlstr="Select   deviceid,curval,msg   from   tblAlarm";  
  WriteToDB(dsn,sqlstr);  
   
  return   0;  
  }  
   
  bool   WriteToDB(char   *   dsnname,   char   *   sqlstr)  
  {  
  SQLHENV     henv;  
  SQLHDBC     hdbc;  
  SQLHSTMT   hstmt;  
  SQLRETURN     retcode;  
   
          //   Allocate   environment   handle  
  retcode   =   SQLAllocHandle(SQL_HANDLE_ENV,   SQL_NULL_HANDLE,   &henv);    
  if   (retcode   !=   SQL_SUCCESS   &&   retcode   !=   SQL_SUCCESS_WITH_INFO)   {  
   
  return   false;  
  }  
   
  //   Set   the   ODBC   version   environment   attribute  
  retcode   =   SQLSetEnvAttr(henv,   SQL_ATTR_ODBC_VERSION,   (void*)SQL_OV_ODBC3,   0);    
  if   (retcode   !=   SQL_SUCCESS   &&   retcode   !=   SQL_SUCCESS_WITH_INFO)   {  
   
  SQLFreeHandle(SQL_HANDLE_ENV,   henv);  
  return   false;  
  }  
   
  //   Allocate   connection   handle  
  retcode   =   SQLAllocHandle(SQL_HANDLE_DBC,   henv,   &hdbc);    
  if   (retcode   !=   SQL_SUCCESS   &&   retcode   !=   SQL_SUCCESS_WITH_INFO)   {  
   
  SQLFreeHandle(SQL_HANDLE_ENV,   henv);  
  return   false;  
  }  
   
  //   Set   login   timeout   to   5   seconds  
  SQLSetConnectAttr(hdbc,   SQL_LOGIN_TIMEOUT,   (void*)5,   0);  
   
  //   Connect   to   data   source  
  retcode   =   SQLConnect(hdbc,   (SQLCHAR*)   dsnname,   SQL_NTS,  
                      (SQLCHAR*)   "sa",   SQL_NTS,  
                      (SQLCHAR*)   "",   SQL_NTS);  
  if   (retcode   !=   SQL_SUCCESS   &&   retcode   !=   SQL_SUCCESS_WITH_INFO){  
  printf("Can't   connect   to   data   source:%s\n",dsnname);  
  SQLFreeHandle(SQL_HANDLE_DBC,   hdbc);  
  SQLFreeHandle(SQL_HANDLE_ENV,   henv);  
  return   false;  
  }  
   
  //   Allocate   statement   handle  
  retcode   =   SQLAllocHandle(SQL_HANDLE_STMT,   hdbc,   &hstmt);    
  if   (retcode   !=   SQL_SUCCESS   &&   retcode   !=   SQL_SUCCESS_WITH_INFO)   {  
   
  SQLDisconnect(hdbc);  
  SQLFreeHandle(SQL_HANDLE_DBC,   hdbc);  
  SQLFreeHandle(SQL_HANDLE_ENV,   henv);  
  return   false;  
  }  
   
  //   Execute   SQL   statement   derectly  
  retcode   =   SQLExecDirect(hstmt,   (SQLCHAR*)   sqlstr,   SQL_NTS);  
  if   (retcode==SQL_SUCCESS)  
  printf("%s\n","Insert   data   into   table   successfully!");  
   
  //   Free   STMT,DBC,Envaroment   handle   and   disconnect   to   DSN  
  SQLFreeHandle(SQL_HANDLE_STMT,   hstmt);  
  SQLDisconnect(hdbc);  
  SQLFreeHandle(SQL_HANDLE_DBC,   hdbc);  
  SQLFreeHandle(SQL_HANDLE_ENV,   henv);  
   
  return   true;  
  }Top

8 楼kmcyz(阿成)回复于 2002-11-29 16:21:04 得分 5

不好意思,上面main()函数应为:  
  int   main(int   argc,   char*   argv[])  
  {  
  char*   dsn="cqcf";  
  char*   sqlstr="INSERT   INTO   tblAlarm   (dt,tm,deviceid,curval,msg)   "  
                          "VALUES   ('2002-10-8',   '14:3:5','23',2343,'device   23   error')";  
  WriteToDB(dsn,sqlstr);  
   
  return   0;  
  }  
  Top

9 楼GrantGuo(小郭)回复于 2002-12-01 18:12:28 得分 5

采用DBLib来连数据库Top

相关问题

  • 有没有用C语言嵌入SQL的写数据库的?
  • 数据库语言嵌入C++!!!
  • linux嵌入式开发语言用C还是C++?
  • C语言中的 SQL
  • c语言内嵌sql
  • Sco Unix下如何在C语言中嵌入汇编语句?
  • 如何在c语言的程序里嵌入Dos命令
  • 在C++BUILDER6中如何嵌入汇编语言?(请教)
  • Unix C支持嵌入汇编语言吗?
  • 用C语言,进行嵌入式编程?

关键词

  • c++
  • sql
  • 嵌入
  • writetodb
  • retcode
  • rtrim
  • henv
  • convert
  • sqlstr
  • sqlca

得分解答快速导航

  • 帖主:LBN1012
  • shanhan_27
  • hzhzh
  • sytrade50
  • mightyjiang
  • linzx
  • kmcyz
  • kmcyz
  • GrantGuo

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo