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

使用DBEXPRESS Bulid後程式發生錯誤

答題得分者是:Chance36
juneo
高階會員


發表:103
回覆:190
積分:118
註冊:2004-05-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-15 14:31:27 IP:211.20.xxx.xxx 未訂閱
使用DBEXPRESS撰寫Delphi 7.0 + Mysql 4.0.2-nt 系統是WIN2000P    在delphi編輯的時候都OK 也可以看到DBGrid顯示正常資料 可是當Bulid後執行檔卻發生問題 我有先查過程式錯誤是發生在SQLDataSet1與ClientDataSet1的部份 可是仍然不知道問題點在哪 請知道的人告訴我如何排除這問題,還是有替代方案    在DELPHI中很正常的圖片 以下是Build後產生出執行檔錯誤圖檔 分享比獲得更快樂--Juneo
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-16 00:55:48 IP:203.204.xxx.xxx 未訂閱
juneo 你好    在設計完成後Build之前,先將SQLConnection close; 然後在Form的OnCreate或OnShow的事件中寫入開啟CLientDataSet的程式碼 應該就可以了。意思就是在程式剛啟動的時候SQLCOnnection是關閉的, 在有需要的時候才予以開啟,如此可避掉許多的問題。    _______________________________________ 深藍的魚,祝您好運..........連連
juneo
高階會員


發表:103
回覆:190
積分:118
註冊:2004-05-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-16 08:26:23 IP:211.20.xxx.xxx 未訂閱
引言: juneo 你好 在設計完成後Build之前,先將SQLConnection close; 然後在Form的OnCreate或OnShow的事件中寫入開啟CLientDataSet的程式碼 應該就可以了。意思就是在程式剛啟動的時候SQLCOnnection是關閉的, 在有需要的時候才予以開啟,如此可避掉許多的問題。 _______________________________________ 深藍的魚,祝您好運..........連連
版主你好: 感謝你的回答,我嘗試用你的方式後,出現DBExpress不支援的問題(Operation Not Supported)以下是我用Button開啟連線程式碼,請幫我看看
 
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBXpress, FMTBcd, DB, SqlExpr, Grids, DBGrids, ADODB, StdCtrls,
  Provider, DBClient;    type
  TForm1 = class(TForm)
    SQLConnection1: TSQLConnection;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    ClientDataSet1: TClientDataSet;
    DataSetProvider1: TDataSetProvider;
    SQLDataSet1: TSQLDataSet;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    {$R *.dfm}    procedure TForm1.Button5Click(Sender: TObject);
begin
DataSource1.AutoEdit:=True;
end;    procedure TForm1.Button4Click(Sender: TObject);
begin
  ClientDataSet1.Active:=True;
end;    procedure TForm1.Button3Click(Sender: TObject);
begin
DataSetProvider1.Constraints:=true;
end;    procedure TForm1.Button2Click(Sender: TObject);
begin
SQLDataSet1.Active:=true;
end;    procedure TForm1.Button1Click(Sender: TObject);
begin
SQLConnection1.Connected:=True;
end;    procedure TForm1.FormCreate(Sender: TObject);
begin    end;    end.
分享比獲得更快樂--Juneo
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-17 01:36:55 IP:203.204.xxx.xxx 未訂閱
引言: procedure TForm1.Button5Click(Sender: TObject); begin // DataSource1.AutoEdit:=True;// 這行可以不用(預設值就是True了) //若真有需要則在ClientdataSet.Active := True;之前設定 end; procedure TForm1.Button3Click(Sender: TObject); begin //DataSetProvider1.Constraints:=true;// 這行也是 end; procedure TForm1.Button4Click(Sender: TObject); begin ClientDataSet1.Active:=True; //相關元件的連結都設定好了之後 //只要ClientDataSet一開啟則其他的相關元件會自動開啟,所以其他按鈕的 //動作都可以省略了 end; procedure TForm1.Button2Click(Sender: TObject); begin //SQLDataSet1.Active:=true;// 這行不需要自行開啟,除非你有特殊用途 end; procedure TForm1.Button1Click(Sender: TObject); begin //SQLConnection1.Connected:=True;// 這也不需要,原因同上 end; end. [/code]
_______________________________________ 深藍的魚,祝您好運..........連連
juneo
高階會員


發表:103
回覆:190
積分:118
註冊:2004-05-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-02-18 10:18:31 IP:211.20.xxx.xxx 未訂閱
感謝Chance36目前已經弄出頭緒ㄌ^^ 分享比獲得更快樂--Juneo
系統時間:2024-06-26 23:48:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!