線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2119
推到 Plurk!
推到 Facebook!

條件式查詢Select * from plu4 where cname like :tString不能使用

尚未結案
mochimaa
一般會員


發表:1
回覆:3
積分:0
註冊:2003-02-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-30 23:49:33 IP:59.125.xxx.xxx 訂閱
各位大大~請教一個問題(希望大家可以幫忙一下)
1.我用sql2000 adoquery 簡體winxp作業系統
2.其中有一個table "plu4" 然後欄位名稱 "cname" 型態是nvarchar(30)
3.輸入以下的查詢條件郤回傳0筆資料
4.這樣的條件在 繁體winxp及欄位是varchar下是有資料的
5.請問這是那裡出了錯了呢?還是需要如何處理(因為我是要將繁體的系統轉為簡體的)
[code cpp]
ADOMain->Close();
ADOMain->SQL->Clear();
ADOMain->SQL->Add("Select * from plu4 where cname like :tString ");
ADOMain->Parameters->ParamByName("tString")->Value = "白%";
ADOMain->Open();
[/code]
christie
資深會員


發表:30
回覆:299
積分:475
註冊:2005-03-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-01-31 08:46:47 IP:203.73.xxx.xxx 未訂閱

===================引 用 mochimaa 文 章===================
各位大大~請教一個問題(希望大家可以幫忙一下)
1.我用sql2000 adoquery 簡體winxp作業系統
2.其中有一個table "plu4" 然後欄位名稱 "cname" 型態是nvarchar(30)
3.輸入以下的查詢條件郤回傳0筆資料
4.這樣的條件在 繁體winxp及欄位是varchar下是有資料的
5.請問這是那裡出了錯了呢?還是需要如何處理(因為我是要將繁體的系統轉為簡體的)


試試看

ADOMain->SQL->Add("Select * from plu4 where RTRIM(cname) like :tString ");
------
What do we live for if not to make life less difficult for each other?
mochimaa
一般會員


發表:1
回覆:3
積分:0
註冊:2003-02-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-31 10:32:14 IP:203.217.xxx.xxx 訂閱
  1. ADOMain->Close();
  2. ADOMain->SQL->Clear();
  3. ADOMain->SQL->Add("Select * from plu4 where cname like :tString ");
  4. ADOMain->Parameters->ParamByName("tString")->Value = "%";
  5. ADOMain->Open();

也是不這個問題溜....因為這樣也不行......
請求各位大大幫忙
mochimaa
一般會員


發表:1
回覆:3
積分:0
註冊:2003-02-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-02-01 02:19:28 IP:203.217.xxx.xxx 訂閱
請問各位大大....這個問題真的沒有人能解嗎?
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-02-01 11:10:52 IP:211.75.xxx.xxx 訂閱
印像中 like 後面不能用參數型態吧
改成這樣吧

[code cpp]
ADOMain->Close();
ADOMain->SQL->Clear();
ADOMain->SQL->Add("Select * from plu4 where cname like " QuotedStr("白%") );
ADOMain->Open();
[/code]


===================引 用 mochimaa 文 章===================
各位大大~請教一個問題(希望大家可以幫忙一下)
1.我用sql2000 adoquery 簡體winxp作業系統
2.其中有一個table "plu4" 然後欄位名稱 "cname" 型態是nvarchar(30)
3.輸入以下的查詢條件郤回傳0筆資料
4.這樣的條件在 繁體winxp及欄位是varchar下是有資料的
5.請問這是那裡出了錯了呢?還是需要如何處理(因為我是要將繁體的系統轉為簡體的)
[code cpp]
ADOMain->Close();
ADOMain->SQL->Clear();
ADOMain->SQL->Add("Select * from plu4 where cname like :tString ");
ADOMain->Parameters->ParamByName("tString")->Value = "白%";
ADOMain->Open();
[/code]
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-02-02 17:15:07 IP:220.228.xxx.xxx 訂閱
你好:

檢查一下 Parameter.DataType 是否正確.

varchar => ftString , nvarchar => ftWidrString

另外, 在下有一個疑問, 繁轉簡, 為何 DB 欄位需要改用 Unicode ?
mochimaa
一般會員


發表:1
回覆:3
積分:0
註冊:2003-02-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-02-02 23:56:13 IP:203.217.xxx.xxx 訂閱
版主您好....
我其實也不想改成unicode
本來是varchar 但在簡體系統下.存到sql2000裡的資料有一些會變成奇怪的符號,比如
"白吐司"會變成"白?司"
所以我不得不改成nvarchar

如果能不要改當然我也一定不會改的.....
所以這也是我一個不解的問題
yubad2000
中階會員


發表:0
回覆:44
積分:78
註冊:2007-09-30

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-02-04 16:28:07 IP:66.171.xxx.xxx 未訂閱
  1. ADOMain->Close();
  2. ADOMain->SQL->Clear();
  3. ADOMain->SQL->Add("Select * from plu4 where cname like :tString ");
  4. ADOMain->Parameters->Refresh();
  5. ADOMain->Parameters->ParamByName("tString")->DataType = ftWidrString;
  6. ADOMain->Parameters->ParamByName("tString")->Value = "白%";
  7. ADOMain->Open();

===================引 用 Mickey 文 章===================
你好:

檢查一下 Parameter.DataType 是否正確.

varchar => ftString , nvarchar => ftWidrString

另外, 在下有一個疑問, 繁轉簡, 為何 DB 欄位需要改用 Unicode ?
------
===波士頓夜未眠===
What a wonderful world!!
Jazz up the world with jazz!!
==================

When I am not programming...
you can find me here:
http://www.holy-war.de/EN/World3/bin/?advertiser=63190
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-02-05 10:11:59 IP:218.163.xxx.xxx 訂閱
1. MSSQL 2000 是否也是簡體 ?

2. "白吐司"會變成"白?司" => 是從簡體環境輸入的, 還是從繁體資料轉進去 ?

因為 Delphi 到 2007 都還只是"埋好"對 Unicode 的支援, 此時改用 Unicode 工程頗大.

聽說...到 2008 會全面支援 Unicode...不知是真還假...祈禱囉...

===================引 用 mochimaa 文 章===================
版主您好....
我其實也不想改成unicode
本來是varchar 但在簡體系統下.存到sql2000裡的資料有一些會變成奇怪的符號,比如
"白吐司"會變成"白?司"
所以我不得不改成nvarchar

如果能不要改當然我也一定不會改的.....
所以這也是我一個不解的問題
yang1217
一般會員


發表:2
回覆:5
積分:1
註冊:2008-02-07

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-02-07 20:27:15 IP:122.126.xxx.xxx 訂閱
試試看
ADOMain->Parameters->ParamByName("tString")->Value = "白" '%';
u86210779
一般會員


發表:16
回覆:41
積分:16
註冊:2004-06-08

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-02-14 16:18:40 IP:218.175.xxx.xxx 訂閱
試試 showmessage(ADOMain->Parameters->ParamByName("tString")->Value ), 看看是不是 "白%".
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#12 引用回覆 回覆 發表時間:2008-02-14 16:29:41 IP:220.229.xxx.xxx 訂閱
您好
是否可以試試看不要用param的方式直接將SQL組成字串
"Select * from plu4 where cname like '白%' "
------
Pillar Wang
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#13 引用回覆 回覆 發表時間:2008-02-19 22:53:28 IP:124.10.xxx.xxx 訂閱
程式開發環境是簡體還是繁體?
若程式開發環境是簡體,你這樣絕對找不到資料的。因為程式中輸入的「白」是 GB 碼
你試試看改成「啞」看能不能找到資料
BIG5 的「白」內碼跟 GB 的「啞」一樣
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#14 引用回覆 回覆 發表時間:2008-02-20 15:10:15 IP:59.40.xxx.xxx 訂閱
如果你在 DataBase 内部,不需要同时保存 BIG5 和 GB 编码的文字,可以不用 Unicode 的。

如果输入资料的客户端可能同时存在 BIG5 和 GB 系统,那就需要 DataBase 支持 Unicode 了。
系統時間:2024-05-16 11:59:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!