SqlMemTable的中文查詢問題~~ |
缺席
|
yeye
一般會員 發表:7 回覆:5 積分:2 註冊:2006-11-18 發送簡訊給我 |
我是用SqlMemTable元件,預先將server的某資料表,
使用AdoDataSet抓下來,再把值塞進去程式中的MemTable中, 放在電腦的記憶體中,供使用者查詢、更新, 但是MemTable的中文支援怪怪的,像我用模糊查詢, 明明條件下的是「i」,卻會找出有含「哈」的資料。 打「哈」查詢,卻會抓出一堆名稱中沒有「哈」的資料… 我有上網查了一下,有人說需要把MemTable中的欄位屬性改為:ftWideString 可是,資料似乎在從DataSet -> MemTable就出問題了,值寫不進去… 那欄位在SQL Server中是設為String, 請問各位前輩,有辦法將值做轉換嗎?或是該怎麼去設定SqlMemTable? |
yeye
一般會員 發表:7 回覆:5 積分:2 註冊:2006-11-18 發送簡訊給我 |
這元件先用AdoDataSet讀取資料庫取值,再塞進SQLMemTable中,
使用SQLMemQuery下語法,用DataSource去指向SQLMemQuery, 這元件有兩個要注意的地方是,在下sql 查詢時,A和a是不一樣的, 我的作法是在轉存至MemTable時,就全部改為小寫的… 另一個就是中文字查詢的問題,後來我把FieldDefs中,我查詢會用到的Fields 資料型態設為fsWideString,下面的size也要設,它不會自己跑~~ 預設為0…沒有改就不會有值寫進去...一開始也沒注意到這裡。 在把資料轉存到MemTable時,下widestring指令… 下面是在資料轉存時,我的寫法並不高級,有需要的人就參考參考吧。 //建立Book的MemTable DM.BookDataSet.Close; DM.BookDataSet.CommandText := 'Select * from Book'; DM.BookDataSet.Open; DM.MemBookTbl.Close; DM.MemBookTbl.CreateTable; DM.MemBookTbl.Open; While not DM.BookDataSet.Eof do begin DM.MemBookTbl.Insert; DM.MemBookTbl.FieldByName('ISBN').AsString := DM.BookDataSet.Fields.Fields[0].AsString; DM.MemBookTbl.FieldByName('Name').AsString := widestring(AnsiLowerCase(DM.BookDataSet.Fields.Fields[1].AsString)); DM.MemBookTbl.FieldByName('Author').AsString := DM.BookDataSet.Fields.Fields[2].AsString; DM.MemBookTbl.FieldByName('PublisherID').AsString := DM.BookDataSet.Fields.Fields[3].AsString; DM.MemBookTbl.FieldByName('KindID').AsString := DM.BookDataSet.Fields.Fields[4].AsString; DM.MemBookTbl.FieldByName('Price').AsString := DM.BookDataSet.Fields.Fields[5].AsString; DM.MemBookTbl.FieldByName('SellPrice').AsString := DM.BookDataSet.Fields.Fields[6].AsString; DM.MemBookTbl.FieldByName('Stock').AsString := DM.BookDataSet.Fields.Fields[7].AsString; DM.MemBookTbl.FieldByName('CreateDate').AsString := DM.BookDataSet.Fields.Fields[8].AsString; DM.MemBookTbl.FieldByName('UpDate').AsString := DM.BookDataSet.Fields.Fields[9].AsString; DM.MemBookTbl.FieldByName('User').AsString := DM.BookDataSet.Fields.Fields[10].AsString; DM.MemBookTbl.Post; Dm.BookDataSet.Next; end; DM.MemBookSql.Close; DM.MemBookSql.SQL.Clear; DM.MemBookSql.SQL.Add('Select ISBN ,Name as 書名,Author as 作者 from Books'); DM.MemBookSql.Open;
編輯記錄
yeye 重新編輯於 2008-10-30 14:03:08, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |