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

請教關於TableName轉換為Items

答題得分者是:thankschat3b
yeuyun
一般會員


發表:3
回覆:3
積分:1
註冊:2006-08-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-28 17:53:04 IP:59.125.xxx.xxx 未訂閱

謝謝各位前輩之前給我的教導^^
目前又遇到一個程式不熟的問題了~^^|||

我想嚐試做一個程式可以讓我去尋找DB 並且可以選擇TABLE 然後跑出列表

procedure TForm1.Edit1DblClick(Sender: TObject);
begin
if Edit1.Text ='' then Exit;
Table1.DatabaseName :=Edit1.Text ;
ComboBox1.Items :=Table1.TableName;
ComboBox1.Enabled :=True;
end;

[Error] DBSearch.pas(46): Incompatible types: 'TStrings' and 'TFileName'
因為這二個Items 跟TableName型態不同,我應該要如何轉換並且塞入呢~~
真的很抱歉~我是超級新手~^^a~純粹自修
謝謝各位大大

------
第一次的DELPHI
mine
中階會員


發表:28
回覆:129
積分:56
註冊:2004-03-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-08-28 23:22:42 IP:211.76.xxx.xxx 未訂閱

ComboBxo1.Items<---Tstings

combobox1.Items.Add(Table1.TableName);

試試吧

很久沒回文了 回的不好見諒嘿

hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-08-29 00:13:21 IP:218.170.xxx.xxx 未訂閱

這樣改似乎比較符合原po的期待

procedure TForm1.Edit1DblClick(Sender: TObject);
begin
if Edit1.Text ='' then Exit;
Table1.DatabaseName :=Edit1.Text ;
Table1.Database.GetTableNames(ListBox1.Items, False);
end;

hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-08-29 00:14:23 IP:218.170.xxx.xxx 未訂閱
sorry...更正...

Combobox1.Items, False);
yeuyun
一般會員


發表:3
回覆:3
積分:1
註冊:2006-08-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-08-30 09:31:38 IP:59.125.xxx.xxx 未訂閱

謝謝~mine,hahalin二位大大的教學
由於我是使用DELPHI5 ,程式出現以下錯誤訊息~
[Error] DBSearch.pas(43): Undeclared identifier: 'GetTableNames'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'DBSearch.pas'
是需要user 其他東西還是說有漏掉的地方呢?

謝謝您喔

------
第一次的DELPHI
thankschat3b
一般會員


發表:0
回覆:2
積分:5
註冊:2005-09-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-09-03 02:08:17 IP:218.167.xxx.xxx 未訂閱

http://tw.myblog.yahoo.com/jw!74hI3.yGGBYHnpFfQ3FyXJqfE6w-/article?mid=58&prev=60&next=57&l=f&fid=7

動態取得TABLE名稱與欄位名稱

分類:DELPHI筆記
2006/05/23 12:19

//function說明:輸入一欄位數值,將所有相同欄位名稱一樣的數值,全部刪除

//適用於M/S 一對多TABLE使用

//使用元件說明

//有使用到LeftStr() 在 interface 的uses要增加StrUtils

//tmp: TADOQuery;
//ComboBox1: TComboBox;
//ComboBox2: TComboBox;
//DATAMODULE1.Con1: : TADOConnection;

FUNCTION DELETE_INDEX_KEY(INDEX_KEY:STRING):VARIANT;

VAR I,J:INTEGER;
STR1:STRING;
begin
RESULT:=TRUE;
DATAMODULE1.Con1.GetTableNames(SELF.ComboBox1.Items);

//取得table名稱紀錄於combobox1
FOR I:=0 TO COMBOBOX1.Items.Count -1 DO
BEGIN
COMBOBOX1.ItemIndex:=I;
STR1:=LEFTSTR(COMBOBOX1.Items.Strings[I],1);
IF STR1 <> '~' THEN

//因為有些資料庫會有系統暫存table,以"~"字元為開頭,不列入查詢範圍
BEGIN
DATAMODULE1.Con1.GetFieldNames(COMBOBOX1.Text,COMBOBOX2.Items);

//將combobox1.text的table名稱內的欄位名稱紀錄於combobox2
FOR J:=0 TO COMBOBOX2.Items.Count -1 DO
BEGIN
COMBOBOX2.ItemIndex:=J;
IF COMBOBOX2.Text='INDEX_KEY' THEN
BEGIN
TMP.Active:=FALSE;
TMP.SQL.Text:='DELETE FROM ' COMBOBOX1.Text ' WHERE INDEX_KEY=" ' INDEX_KEY ' " ';
TMP.ExecSQL;
END;
END;
END;
END;
end;

也可以將FUNCTION DELETE_INDEX_KEY(INDEX_KEY:STRING):VARIANT;

改為FUNCTION DELETE_INDEX_KEY(INDEX_KEY:STRING;Field_Name:STRING):VARIANT;

Field_Name設定為指定的欄位名稱

在IF COMBOBOX2.Text='INDEX_KEY' THEN部分

修改成IF COMBOBOX2.Text=Field_Name THEN

TMP.SQL.Text:='DELETE FROM ' COMBOBOX1.Text ' WHERE INDEX_KEY="' INDEX_KEY '"';
修改成

TMP.SQL.Text:='DELETE FROM ' COMBOBOX1.Text ' WHERE ' Field_Name '=" ' INDEX_KEY ' " ';

就變成指定欄位名稱與指定欄位值,將符合資料的table內的資料刪除

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