SQL语言嵌入C++!!!!!
有谁知道在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




