delphi7 讀取mysql其中一個table 再新增到sqlite裡面 |
答題得分者是:tuga
|
a9907087
一般會員 發表:3 回覆:6 積分:1 註冊:2014-12-06 發送簡訊給我 |
|
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
|
a9907087
一般會員 發表:3 回覆:6 積分:1 註冊:2014-12-06 發送簡訊給我 |
不好意思,最近在寫的時候又發生問題
[code delphi] sSQL := 'CREATE TABLE huccsqlite ([stockid] varchar(15) PRIMARY KEY,[international_barcode] VARCHAR(45),'; sSQL := sSQL '[stock_description] VARCHAR(50), [use_units] varchar(20),[is_flex] tinyint(1),[mbflag] char(1),'; sSQL := sSQL '[small_cat_categorydescription] varchar(10), [middle_cat_categorydescription] varchar(10),[large_cat_cat_categorydescription] varchar(10),'; sSQL := sSQL '[ou1_stockcategory_name] varchar(50), [suppname] varchar(26),[price] decimal(20,4));'; //sSQL := sSQL 'COLLATE NOCASE);'; sldb.execsql(sSQL); sldb.execsql('CREATE INDEX TestTableName ON [huccsqlite]([stockid]);'); [/code] 以上是我用delhpi sqlite 要創出來的資料庫 當我使用您的語法的時候會出現 "could not convert variant of type (UnicodeString) into type (Double)" 或者"could not convert variant of type (null) into type (olestr)" 請問該怎麼解決呢?? |
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
taSqlLite.FieldByName('f1').Value := taMysql.FieldByName('f1').Value ;
A1 你建立在 sqlLite 跟 mySql 的 F1 的 data type 是不一樣的, ex F1 是 string, 在 sqlLite, mySql 必須都是 string 或是你必須指定明確的型態 taSqlLite.FieldByName('f1').AsString := taMysql.FieldByName('f1').AsString ; 或是 taSqlLite.FieldByName('f1').AsInteger := StrToInt(taMysql.FieldByName('f1').AsString) ; 如果考慮 WideString , 試看看 taSqlLite.FieldByName('f1').AsWideString := taMysql.FieldByName('f1').AsString ; |
a9907087
一般會員 發表:3 回覆:6 積分:1 註冊:2014-12-06 發送簡訊給我 |
|
a9907087
一般會員 發表:3 回覆:6 積分:1 註冊:2014-12-06 發送簡訊給我 |
|
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
您用了尚未被 Create 的 object
var st : TStringList ; begin ShowMessage(st.Count) ; end; 因為 st 尚未被 Create 所以用了就會出現錯誤訊息, 使用 object 之前必須先 Create, 如下 var st : TStringList ; begin st := TStringList.Create; ShowMessage(st.Count) ; end; ===================引 用 a9907087 文 章=================== 不好意思大大,在請問一下access violation at address in module read of address 是什麼錯誤??? |
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
如果是我寫, 會如下
ClientDataSet1.FieldByName('ListPrice').AsString := floattostr( sltb.FieldByName('price').AsDouble) 你的 ListPrice 如果是數值欄位 可以如下 try ClientDataSet1.FieldByName('ListPrice').AsDouble := sltb.FieldByName('price').AsDouble ; except // 這邊可以寫 log 紀錄那些發生問題 // ListPrice 設為 0 也是有風險的, 依照您的情況做處理吧 ClientDataSet1.FieldByName('ListPrice').AsDouble := 0 ; end; ===================引 用 a9907087 文 章=================== 不好意思大大,在請問一下not an integer or numeric field是什麼錯誤??? [code delphi] ClientDataSet1.FieldByName('ListPrice').AsString := floattostr( sltb.FieldAsDouble(sltb.FieldIndex['price'])); [/code] |
a9907087
一般會員 發表:3 回覆:6 積分:1 註冊:2014-12-06 發送簡訊給我 |
|
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
1
BeforeInsert 時把 qyTemp.Last 2 在 EditBox 的 On-Key-Press if key = #13 then begin ..................................... end ===================引 用 a9907087 文 章=================== 謝謝各位的回答,我在dbGrid做了一個項次的欄位 現在每案一次按鈕資料就會在最上面增加,會讓我的項次變成54321 可是我想要的是12345,請問要怎麼改?? 我有一個edit,想要用按下enter以後才執行我的後台的程式
編輯記錄
tuga 重新編輯於 2014-12-20 17:45:36, 註解 無‧
|
a9907087
一般會員 發表:3 回覆:6 積分:1 註冊:2014-12-06 發送簡訊給我 |
|
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
|
a9907087
一般會員 發表:3 回覆:6 積分:1 註冊:2014-12-06 發送簡訊給我 |
|
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |