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

動態create database的問題?

答題得分者是:ccchen
shyu_ting
一般會員


發表:13
回覆:25
積分:12
註冊:2002-11-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-28 09:50:03 IP:203.70.xxx.xxx 未訂閱
各位大大: 如題,我想動態create 一個database 並執行connected的動作,我有看過先前的文章,照著key但執行時會出現問題,請各位先進幫我debug一下..感謝!! procedure TForm1.Button1Click(Sender: TObject); VAR database1:Tdatabase; begin database1:=tdatabase.Create(application.Owner); database1.AliasName:='DBA'; database1.DatabaseName:='test_1'; database1.KeepConnection:=true; database1.LoginPrompt:=false; database1.Params.Clear; database1.Params.Add('username = a1234'); database1.Params.Add('password = a1234'); try database1.Open; ShowMessage('連線成功'); except ShowMessage('帳號密碼錯誤'); end; end; ODBC的部份我有建立並連線測試OK! 執行時會出現以下錯誤訊息: login failed for user '(null)'.reason: not associated with a trusted SQL server connection alias:DBA
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-28 10:20:43 IP:202.39.xxx.xxx 未訂閱
database1.Params.Add('username = a1234'); database1.Params.Add('password = a1234'); 上兩行中等號前後的空白去掉試試。 -- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽
shyu_ting
一般會員


發表:13
回覆:25
積分:12
註冊:2002-11-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-28 10:24:27 IP:203.70.xxx.xxx 未訂閱
還是一樣耶 <>< face="Verdana, Arial, Helvetica">引言: database1.Params.Add('username = a1234'); database1.Params.Add('password = a1234'); 上兩行中等號前後的空白去掉試試。 -- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-28 10:31:34 IP:202.39.xxx.xxx 未訂閱
引言: 還是一樣耶 < face="Verdana, Arial, Helvetica"> 先試試手動拉一個 TDatabase 元件 設定好 AliasName 屬性後 雙擊該元件, 再點選 Defauls 這個 Button 把左方所有的都 copy 到你的程式中的 Params 試試 -- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-28 10:40:16 IP:61.219.xxx.xxx 未訂閱
user name 中間有一空白
navy1018
一般會員


發表:13
回覆:16
積分:5
註冊:2003-10-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-31 20:38:43 IP:61.222.xxx.xxx 未訂閱
引言: 很奇怪~我用for 迴圈跑 前面幾個n:0~9 都有select出資料,可是執行了到第10次,,就訊息出現說 帳號密碼錯誤。 是迴圈中沒有延遲才造成的嗎? 程式如下: for i:=0 to n do begin aDataSource[i]:=TDataSource.Create(Form1); aDatabase[i]:=TDatabase.Create(Form1); aSession[i]:=TSession.Create(Form1); aQuery[i]:=TQuery.Create(Form1); aDBGrid[i]:=TDBGrid.Create(Form1); aDBGrid[i].Parent:=Form1; aDatabase[i].AliasName:='MYDB'; aDatabase[i].DatabaseName:=('aDatabase' IntToStr(i)); aDatabase[i].Params.Clear; aDatabase[i].Params.Add('USER NAME=abc'); aDatabase[i].Params.Add('PASSWORD=123'); aDatabase[i].KeepConnection:=True; aDatabase[i].LoginPrompt:=False; aSession[i].SessionName:=('aSession' IntToStr(i)); aDatabase[i].SessionName:=('aSession' IntToStr(i)); aSession[i].Active:=True; aQuery[i].DatabaseName:=('aDatabase' IntToStr(i)); aQuery[i].SessionName:=('aSession' IntToStr(i)); aDataSource[i].DataSet:=aQuery[i]; aDBGrid[i].DataSource:=aDataSource[i]; try begin aDatabase[i].Open; aQuery[i].SQL.Add('select * from 某個table'); aQuery[i].Active:=True; end; except ShowMessage('帳號密碼錯誤'); end; 而close時,是直接 aDataSource[i].Free; aDatabase[i].Free; aSession[i].Free; aQuery[i].Free; aTimer[i].Free; aDBGrid[i].Free; 行嗎? 幫我check一下吧 還是一樣耶 <>< face="Verdana, Arial, Helvetica">引言: database1.Params.Add('username = a1234'); database1.Params.Add('password = a1234'); 上兩行中等號前後的空白去掉試試。 -- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽
navy1018
一般會員


發表:13
回覆:16
積分:5
註冊:2003-10-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-01-04 12:05:30 IP:61.222.xxx.xxx 未訂閱
找到原因了~如圖! 請問這如何解決?(因為同時要連好幾個Session)    
引言:
引言: 很奇怪~我用for 迴圈跑 前面幾個n:0~9 都有select出資料,可是執行了到第10次,,就訊息出現說 帳號密碼錯誤。 是迴圈中沒有延遲才造成的嗎? 程式如下: for i:=0 to n do begin aDataSource[i]:=TDataSource.Create(Form1); aDatabase[i]:=TDatabase.Create(Form1); aSession[i]:=TSession.Create(Form1); aQuery[i]:=TQuery.Create(Form1); aDBGrid[i]:=TDBGrid.Create(Form1); aDBGrid[i].Parent:=Form1; aDatabase[i].AliasName:='MYDB'; aDatabase[i].DatabaseName:=('aDatabase'+IntToStr(i)); aDatabase[i].Params.Clear; aDatabase[i].Params.Add('USER NAME=abc'); aDatabase[i].Params.Add('PASSWORD=123'); aDatabase[i].KeepConnection:=True; aDatabase[i].LoginPrompt:=False; aSession[i].SessionName:=('aSession'+IntToStr(i)); aDatabase[i].SessionName:=('aSession'+IntToStr(i)); aSession[i].Active:=True; aQuery[i].DatabaseName:=('aDatabase'+IntToStr(i)); aQuery[i].SessionName:=('aSession'+IntToStr(i)); aDataSource[i].DataSet:=aQuery[i]; aDBGrid[i].DataSource:=aDataSource[i]; try begin aDatabase[i].Open; aQuery[i].SQL.Add('select * from 某個table'); aQuery[i].Active:=True; end; except ShowMessage('帳號密碼錯誤'); end; 而close時,是直接 aDataSource[i].Free; aDatabase[i].Free; aSession[i].Free; aQuery[i].Free; aTimer[i].Free; aDBGrid[i].Free; 行嗎? 幫我check一下吧 還是一樣耶 <>< face="Verdana, Arial, Helvetica">引言: database1.Params.Add('username = a1234'); database1.Params.Add('password = a1234'); 上兩行中等號前後的空白去掉試試。 -- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽
發表人 - navy1018 於 2004/01/04 12:59:58
系統時間:2024-11-22 3:39:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!