我的自動生成資料表的代碼如下:
string ls_SQL_1, ls_errors
string ls_1
int i
for i=1 to dw_1.rowcount()
ls_1=dw_1.getitemstring(i,0)
// IF Len(ls_errors) > 0 THEN
// MessageBox("出錯","SyntaxFromSQL()存在錯誤: " + ls_errors)
// RETURN
//END IF
ls_SQL_1=ls_SQL_1+ls_1+ ' integer null,~r~n '
end for
string ls_sql = "if( object_id('pjnr') is not null) drop table pjnr"
execute immediate :ls_sql;
ls_SQL_1="CREATE TABLE pjnr "+&
"(編號 char(12) not null PRIMARY KEY, "+&
"姓名 char(12) not null,"+&
ls_sql_1+&
"總評 numeric(3) not null)"
EXECUTE IMMEDIATE :ls_SQL_1 USING sqlca;
commit;
if sqlca.sqlcode<>0 then
messagebox("","失敗")
else
messagebox("","成功")
end if
disconnect;
connect;
if sqlca.sqlcode<>0 then
messagebox("提示","資料庫連接錯誤,請檢查后重試!",stopsign!)
else
messagebox("提示","資料庫已經重新連接!",information!)
end if
運行時出錯,顯示如下:
Error:DataWindow colunm type dose not match GetItem type at line 5 at clicked event of object cb_1 of w_zbgl.
原以為是讀取資料表的資料型別的問題,但是改了很多遍都還是同樣地錯誤,用過numeric、decimal以及char,都解決不了問題,請高手指點!
uj5u.com熱心網友回復:
語法:string dwcontrol.GetItemString ( long row, integer column {, DWBuffer dwbuffer, boolean originalvalue } )
uj5u.com熱心網友回復:
第五行代碼有問題ls_1=dw_1.getitemstring(i,0)
括號里第二個引數應該為列名,且的用引號引起來。
uj5u.com熱心網友回復:
ls_1=dw_1.getitemstring(i,0)改成ls_1=dw_1.getitemstring(i,2)后可以順利運行,但讀出的是第二列的資料,用0或1都出錯,但我要讀的是第一列的資料,該怎么改?uj5u.com熱心網友回復:
第一列的資料型別不是 char/varchar吧如果是 資料型 getitemnumber()
日期型 getitemdatetime()
uj5u.com熱心網友回復:
第一、二列資料型別都是charuj5u.com熱心網友回復:
應該把0,改成"column_name"列名
uj5u.com熱心網友回復:
ls_1=dw_1.getitemstring(i,0)函式getitemstring第二個引數應該為列名,且的用引號引起來
看一下PB幫助,里面有例子
uj5u.com熱心網友回復:
上面各位的方法我都試了遍,還是不行,改成 列名 后run時出錯,錯誤提示是一開始的那個Error:DataWindow colunm type dose not match GetItem type at line 5 at clicked event of object cb_1 of w_zbgl
uj5u.com熱心網友回復:
那個列資料型別是字符型的嗎?uj5u.com熱心網友回復:
是的,所以想不通,都是char型,為什么能讀第二列,卻讀不了第一列轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/68349.html
標籤:數據庫相關
上一篇:急!!!求高手!!!
下一篇:SQL distinct用法
