首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言操作sql数据库有关问题

2012-07-31 
C语言操作sql数据库问题// abcdde.cpp : Defines the entry point for the console application.//#includ

C语言操作sql数据库问题
// abcdde.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "windows.h"
#include "sql.h"
#include "sqlext.h"
#include "sqltypes.h"
#include "odbcss.h"
SQLHENV henv=SQL_NULL_HENV;
SQLHDBC hdbc1=SQL_NULL_HDBC;
SQLHSTMT hstmt1=SQL_NULL_HSTMT;

int main(int argc, char* argv[])
{  
   
char a[20];
RETCODE retcode;
UCHAR szDSN[SQL_MAX_DSN_LENGTH+1]="csql",
szUID[MAXNAME]="sa",
szAuthStr[MAXNAME]="";
  scanf("%s",a);
UCHAR sql[41]="insert into c_test values(a,getdate())";retcode =SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
if (retcode==SQL_SUCCESS||retcode==SQL_SUCCESS_WITH_INFO)
{
retcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
if (retcode==SQL_SUCCESS||retcode==SQL_SUCCESS_WITH_INFO)
{
retcode=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc1);
if (retcode==SQL_SUCCESS||retcode==SQL_SUCCESS_WITH_INFO)
{
retcode=SQLConnect(hdbc1,(SQLCHAR*)szDSN,SQL_NTS,(SQLCHAR*)szUID,SQL_NTS,(SQLCHAR*)"0900602",SQL_NTS);
if (retcode==SQL_SUCCESS||retcode==SQL_SUCCESS_WITH_INFO)
{
printf("connect successful!");
retcode=SQLAllocHandle(SQL_HANDLE_STMT,hdbc1,&hstmt1);
printf(a);
SQLExecDirect(hstmt1,sql,41);

}
}
}
}
getchar();
return 0;
}
插入数据不成功,红色部分的sql语句是否有问题?

[解决办法]
a是你从键盘读的没错。但是你认为UCHAR sql[41]="insert into c_test values(a,getdate())";你这样弄了一下后你的a还是原先的a么。。。这个a和你从键盘读入的a毛的关系都没有。
如果想我刚才说的那样用sprintf格式化还是不行的话这样试试
sprintf(str, "insert into c_test values(\"%s\",getdate())", a);

热点排行