consloe application中抓資料 |
答題得分者是:pgdennis
|
cyl
中階會員 發表:163 回覆:171 積分:66 註冊:2002-07-11 發送簡訊給我 |
請問我使用 console application ,然後要抓取資料庫中的資料,寫成文字檔,
執行後出錯,不知是哪裡有問題??
program Pconsle; {$APPTYPE CONSOLE} uses
SysUtils,
consle in 'consle.pas'; begin
GetData();
{ TODO -oUser -cConsole Main : Insert code here }
end. unit consle; interface
uses ADODB,db; procedure GetData();
implementation
procedure GetData();
var Qry: TADOQuery;
ADOConnection1: TADOConnection;
begin
ADOConnection1:= TADOConnection.Create(nil);
ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Password=11111 ;Persist Security Info=True;User ID=sa;Initial Catalog=WEB;Data Source=ECINWEB11';
ADOConnection1.Connected :=True;
Qry:= TADOQuery.Create(nil);
Qry.Connection := ADOConnection1 ;
Qry.Close;
Qry.SQL.Clear;
Qry.SQL.Add('select loginid,pwd,homedir from ftppassctl ') ;
Qry.SQL.add(' where (cre_date between getdate()-7 and getdate()) and code<> ' '''' '1' '''');
Qry.Open;
While not Qry.Eof do begin
writeln(Qry.fieldbyname('loginid').asstring );
Qry.Next;
end;
Qry.Free;
end;
end.
|
pgdennis
資深會員 發表:41 回覆:526 積分:443 註冊:2002-05-23 發送簡訊給我 |
你是不是出現coinitialize尚未呼叫的錯誤訊息呢....如果是的話...在ADOConnection1:= TADOConnection.Create(nil);這行之前加上CoInitialize(nil);...在程式結束時加上CoUnInitialize;...記得要uses Ativex < > 你的程式我是沒看還有沒有其他錯誤..不過依你的寫法一定會遇到我講的問題... < > 發表人 - pgdennis 於 2003/04/14 23:07:32
------
星期一,二...無窮迴圈@@ |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
改成這樣看看
program Pconsle; {$APPTYPE CONSOLE} uses SysUtils, consle in 'consle.pas'; begin GetData(); { TODO -oUser -cConsole Main : Insert code here } end. unit consle; interface uses ADODB,db; procedure GetData(); implementation procedure GetData(); var Qry: TADOQuery; ADOConnection1: TADOConnection; F: TextFile; S: string; begin ADOConnection1 := TADOConnection.Create(nil); ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Password=11111 ;Persist Security Info=True;User ID=sa;Initial Catalog=WEB;Data Source=ECINWEB11'; ADOConnection1.Connected := True; Qry := TADOQuery.Create(nil); Qry.Connection := ADOConnection1; Qry.Close; Qry.SQL.Clear; Qry.SQL.Add('select loginid,pwd,homedir from ftppassctl '); Qry.SQL.add(' where (cre_date between getdate()-7 and getdate()) and code<> ' '''' '1' ''''); Qry.Open; while not Qry.Eof do begin S := S Qry.fieldbyname('loginid').asstring; Qry.Next; end; try AssignFile(F, 'C:\123.txt'); Rewrite(F); writeln(F, S); CloseFile(F); Qry.Free; except SHOWMESSAGE('N'); end; SHOWMESSAGE('Y'); end; end. |
cyl
中階會員 發表:163 回覆:171 積分:66 註冊:2002-07-11 發送簡訊給我 |
引言: 你是不是出現coinitialize尚未呼叫的錯誤訊息呢....如果是的話...在ADOConnection1:= TADOConnection.Create(nil);這行之前加上CoInitialize(nil);...在程式結束時加上CoUnInitialize;...記得要uses Ativex < > 你的程式我是沒看還有沒有其他錯誤..不過依你的寫法一定會遇到我講的問題... < > 發表人 - pgdennis 於 2003/04/14 23:07:32我依照您的寫法就可執行,請問為何要加以上的程式???? |
pgdennis
資深會員 發表:41 回覆:526 積分:443 註冊:2002-05-23 發送簡訊給我 |
引言:微軟的說辭 CoInitialize Initializes the COM library on the current thread and identifies the concurrency model as single-thread apartment (STA). Applications must initialize the COM library before they can call COM library functions other than CoGetMalloc and memory allocation functions. ...簡單的說就是你用ADO之前要先initialize ....引言: 你是不是出現coinitialize尚未呼叫的錯誤訊息呢....如果是的話...在ADOConnection1:= TADOConnection.Create(nil);這行之前加上CoInitialize(nil);...在程式結束時加上CoUnInitialize;...記得要uses Ativex < > 你的程式我是沒看還有沒有其他錯誤..不過依你的寫法一定會遇到我講的問題... < > 發表人 - pgdennis 於 2003/04/14 23:07:32我依照您的寫法就可執行,請問為何要加以上的程式????
------
星期一,二...無窮迴圈@@ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |