全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2471
推到 Plurk!
推到 Facebook!

請問insert一筆資料到table的問題

答題得分者是:channel
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-11 17:52:44 IP:203.162.xxx.xxx 未訂閱
請問以下那裡出錯了,我執行時會出現: 'Project mdiapp.exe raised exception class EDBEngineError with message 'General SQL error. [Microsoft][ODBC SQL Server Driver][SQL Server] String or binary data would be truncated. [Microsoft][ODBC SQL Server Driver][SQL Server]The statement has been terminated.' .... ' SQL語法如下: 所有資料都是string Query1.close; Query1.SQL.clear; Query1.SQL.add('insert into booking carrierID, commodity, airportDestination,'); Query1.SQL.add('flightNumber, flightDate, mawb, cbm, kgs,rate, serviceRequest,userID,inputDate)'); Query1.SQL.add('values ' '(' #39 carrier #39 ',' #39 commodity #39 ',' #39 airportID #39 ','); Query1.SQL.add('' #39 flightNo #39 ',' #39 FDate #39 ', ' #39 mawbno #39 ',' #39 Rcbm #39 ','); Query1.SQL.add('' #39 Rkgs #39 ' ,' #39 rate #39 ',' #39 serviceRequest #39 ','); Query1.SQL.add('' #39 userID #39 ',' #39 presenttime #39 ' )'); Query1.Prepare; Query1.ExecSQL; 如果flightDate資料形態是Date的話,要如何insert呢? 謝謝~
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-11 18:15:44 IP:211.21.xxx.xxx 未訂閱
引言: 請問以下那裡出錯了,我執行時會出現: 'Project mdiapp.exe raised exception class EDBEngineError with message 'General SQL error. [Microsoft][ODBC SQL Server Driver][SQL Server] String or binary data would be truncated. [Microsoft][ODBC SQL Server Driver][SQL Server]The statement has been terminated.' .... ' SQL語法如下: 所有資料都是string Query1.close; Query1.SQL.clear; Query1.SQL.add('insert into TableName(booking carrierID, commodity, airportDestination,'); Query1.SQL.add('flightNumber, flightDate, mawb, cbm, kgs,rate, serviceRequest,userID,inputDate)'); Query1.SQL.add('values ' '(' #39 carrier #39 ',' #39 commodity #39 ',' #39 airportID #39 ','); Query1.SQL.add('' #39 flightNo #39 ',' #39 FDate #39 ', ' #39 mawbno #39 ',' #39 Rcbm #39 ','); Query1.SQL.add('' #39 Rkgs #39 ' ,' #39 rate #39 ',' #39 serviceRequest #39 ','); Query1.SQL.add('' #39 userID #39 ',' #39 presenttime #39 ' )'); Query1.Prepare; Query1.ExecSQL; 如果flightDate資料形態是Date的話,要如何insert呢? 謝謝~
看您的錯誤訊息,您的資料庫應該是MS SQL Server 我就不從你的程式改,直接寫入一個日期的欄位給您看,您再自行修改您的程式:
  Query1.SQL.Clear;
  Query1.SQL.Add('Insert into TableName(flightDate)');
  Query1.SQL.Add('Values (cast(' #39 FDate #39 ' AS DateTime))');
  Query1.ExecSQL;
  也就是使用cast()這個函數,e.g.:cast('2003/1/1' As DateTime)
  ps:FDate的格式必需是2003/1/1
~小弟淺見,參考看看~ 發表人 - channel 於 2003/03/11 18:21:47
------
~小弟淺見,參考看看~
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-11 19:39:36 IP:203.162.xxx.xxx 未訂閱
還是不行說~~~
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-11 19:44:52 IP:203.162.xxx.xxx 未訂閱
可以跳了~ 謝謝channel,原來儲存日期的方式不對
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-11 23:00:08 IP:61.221.xxx.xxx 未訂閱
引言: 請問以下那裡出錯了,我執行時會出現: 'Project mdiapp.exe raised exception class EDBEngineError with message 'General SQL error. [Microsoft][ODBC SQL Server Driver][SQL Server] String or binary data would be truncated. [Microsoft][ODBC SQL Server Driver][SQL Server]The statement has been terminated.' .... '
關於 String or binary data would be truncated. 的錯誤訊息的發生原因 是因為要寫入的資料長度大於其在資料庫的欄位!! 例如: PRODUCE_NAME 的欄位是 VARCHAR(10) , 但你要填入的資料為 'super computer' 就會發生這樣的現象!!
系統時間:2024-05-20 17:17:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!