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

BDE轉ADO的問題~~

答題得分者是:P.D.
SianJhihCiou
一般會員


發表:3
回覆:4
積分:1
註冊:2007-06-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-07-17 11:54:56 IP:211.78.xxx.xxx 訂閱
有個BDE轉ADO的問題想請教各位前輩~
某資料表欄位 NAME Char(20) NULL
BDE連結:
Database元件 Query元件 DataSetProvider元件 ClientDataSet元件(取名:cdsBDE)
ADO連結:
ADOConnection元件 ADOQuery元件 DataSetProvider元件 ClientDataSet元件(取名:cdsADO)
NAME欄位的資料為"張三",使用ClientDataSet元件取值如下:
1. cdsBDE->FieldByName("NAME")->AsString 得到 "張三"
2. cdsADO->FieldByName("NAME")->AsString 得到 "張三 "
使用BDE連結會自動去除張三後面的空白
但改用ADO連結時卻不會自動去除張三後面的空白
請教各位前輩們,這狀況有解嗎??
謝謝~~
------
SianJhihCiou
編輯記錄
SianJhihCiou 重新編輯於 2010-07-17 11:55:50, 註解 無‧
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-07-17 12:31:32 IP:118.169.xxx.xxx 未訂閱
如果我記得沒錯, char(20)是會自動填滿空白, 要改為 nchar(20)
SianJhihCiou
一般會員


發表:3
回覆:4
積分:1
註冊:2007-06-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-07-17 15:43:21 IP:211.78.xxx.xxx 訂閱
感謝P.D.的寶貴意見~~
這事情順利解決了
必須使用 varchar 或 nvarchar 才能去掉空白~
將資料型態變更後還必須再對資料做去除空白的動作
其原始的資料才能去掉空白

1. alter table xxx alter column Name varchar(20) null;
或是直接使用SQL Server管理介面變更型態
2.
ADOQuery->Close();
ADOQuery->SQL->Clear();
ADOQuery->SQL->Text="Select * From xxx";
ADOQuery->Open();

while(!ADOQuery->Eof)
{
ADOQuery->Edit();
ADOQuery->FieldByName("Name")->AsString=ADOQuery->FieldByName("Name")->AsString.Trim();
ADOQuery->Post();

ADOQuery->Next();
}
------
SianJhihCiou
系統時間:2017-12-14 2:42:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!