動態create database的問題? |
答題得分者是:ccchen
|
shyu_ting
一般會員 發表:13 回覆:25 積分:12 註冊:2002-11-04 發送簡訊給我 |
各位大大:
如題,我想動態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 發送簡訊給我 |
|
shyu_ting
一般會員 發表:13 回覆:25 積分:12 註冊:2002-11-04 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
navy1018
一般會員 發表:13 回覆:16 積分:5 註冊:2003-10-06 發送簡訊給我 |
引言: 很奇怪~我用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 發送簡訊給我 |
找到原因了~如圖!
請問這如何解決?(因為同時要連好幾個Session)
引言:發表人 - navy1018 於 2004/01/04 12:59:58引言: 很奇怪~我用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'); 上兩行中等號前後的空白去掉試試。 -- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |