- 论坛徽章:
- 0
|
第一个问题不知道你说的什么.
先回答你第二个问题,我以前写的程序作为例子供你参考,这段代码是根据数据库里面查询出来的数据类型做相应类型的榜定:- /*SQLBindParameter绑定输入参数*/
- for (i=0;i<colnum;i++)
- {
- /*制定每个参数对应的类型,达到最高性能*/
- if (strcmp(tabstat[i].scoltype,"DECIMAL")==0)
- {
- rc = SQLBindParameter( hstmt,
- i+1,
- SQL_PARAM_INPUT,
- SQL_C_CHAR,
- SQL_DECIMAL,
- sizeof(cliArrayData[i].pdata[0]),
- 0,
- cliArrayData[i].pdata,
- sizeof(cliArrayData[i].pdata[0]),
- NULL
- ) ;
- if (rc!=0)
- {
- printf("Bind Col ERROR:%d !\n",i);
- PtErrorMsg(SQL_HANDLE_STMT,hstmt);
- }
- else
- {
- printf("COL=%d,TYPE=%s,Bind SUCCESS\n",i,tabstat[i].scoltype);
- }
- }
- if (strcmp(tabstat[i].scoltype,"VARCHAR")==0)
- {
- rc = SQLBindParameter( hstmt,
- i+1,
- SQL_PARAM_INPUT,
- SQL_C_CHAR,
- SQL_VARCHAR,
- sizeof(cliArrayData[i].pdata[0]),
- 0,
- cliArrayData[i].pdata,
- sizeof(cliArrayData[i].pdata[0]),
- NULL
- ) ;
- if (rc!=0)
- {
- printf("Bind Col ERROR:%d !\n",i);
- PtErrorMsg(SQL_HANDLE_STMT,hstmt);
- }
- else
- {
- printf("COL=%d,TYPE=%s,Bind SUCCESS\n",i,tabstat[i].scoltype);
- }
- }
- if (strcmp(tabstat[i].scoltype,"CHAR")==0)
- {
- rc = SQLBindParameter( hstmt,
- i+1,
- SQL_PARAM_INPUT,
- SQL_C_CHAR,
- SQL_CHAR,
- sizeof(cliArrayData[i].pdata[0]),
- 0,
- cliArrayData[i].pdata,
- sizeof(cliArrayData[i].pdata[0]),
- NULL
- ) ;
- if (rc!=0)
- {
- printf("Bind Col ERROR:%d !\n",i);
- PtErrorMsg(SQL_HANDLE_STMT,hstmt);
- }
- else
- {
- printf("COL=%d,TYPE=%s,Bind SUCCESS\n",i,tabstat[i].scoltype);
- }
- }
- if (strcmp(tabstat[i].scoltype,"DATE")==0)
- {
- rc = SQLBindParameter( hstmt,
- i+1,
- SQL_PARAM_INPUT,
- SQL_C_CHAR,
- SQL_TYPE_DATE,
- sizeof(cliArrayData[i].pdata[0]),
- 0,
- cliArrayData[i].pdata,
- sizeof(cliArrayData[i].pdata[0]),
- NULL
- ) ;
- if (rc!=0)
- {
- printf("Bind Col ERROR:%d !\n",i);
- PtErrorMsg(SQL_HANDLE_STMT,hstmt);
- }
- else
- {
- printf("COL=%d,TYPE=%s,Bind SUCCESS\n",i,tabstat[i].scoltype);
- }
- }
- if (strcmp(tabstat[i].scoltype,"TIMESTAMP")==0)
- {
- rc = SQLBindParameter( hstmt,
- i+1,
- SQL_PARAM_INPUT,
- SQL_C_CHAR,
- SQL_TYPE_TIMESTAMP,
- sizeof(cliArrayData[i].pdata[0]),
- 0,
- cliArrayData[i].pdata,
- sizeof(cliArrayData[i].pdata[0]),
- NULL
- ) ;
- if (rc!=0)
- {
- printf("Bind Col ERROR:%d !\n",i);
- PtErrorMsg(SQL_HANDLE_STMT,hstmt);
- }
- else
- {
- printf("COL=%d,TYPE=%s,Bind SUCCESS\n",i,tabstat[i].scoltype);
- }
- }
- }
- printf("========\nBind COMPLET\n=========\n");
复制代码
[ 本帖最后由 Law 于 2008-10-22 13:21 编辑 ] |
|