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

手動建立的datamodule 正常更新有問題

缺席
nokia2005
一般會員


發表:27
回覆:18
積分:9
註冊:2006-12-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-16 11:17:58 IP:220.228.xxx.xxx 訂閱
我原本就有一個Datamodule但因程式的關係必須
再建立一個
Application.CreateForm(TFormCustClass, FormCustClass);

var dataModule1:TDataModule1;
DataModule1 := TDataModule1.Create(Application);
可是當我使用手動建立的無法去更新到資料庫要如何才能正常的更新呢
我在已放入要連資料庫要有的元件了也可正常顯示與新增刪除編輯所有功能
但就是applyupdate(0)無法正常更新也無錯誤訊息
max5020
資深會員


發表:30
回覆:277
積分:321
註冊:2003-06-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-04-16 11:21:04 IP:59.120.xxx.xxx 訂閱
這樣子, 大家不好猜,
可能要再說明得具體的一點,
或是POST部份程式上來討論!!
nokia2005
一般會員


發表:27
回覆:18
積分:9
註冊:2006-12-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-04-16 11:31:11 IP:220.228.xxx.xxx 訂閱
感謝前輩熱心指點以是我的程式碼
這是dll檔做成的下面是程式碼
真的非常感謝

unit FrmCustClass;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, bsSkinCtrls, bsSkinData, BusinessSkinForm, StdCtrls, DB,
bsdbctrls, bsMessages, bsSkinGrids, bsDBGrids, DBXpress, FMTBcd,
DBClient, Provider, SqlExpr, unGlobalVariable, Grids, UnConfigLoader,
DBGrids;
type
TFormCustClass = class(TForm)
bsBusinessSkinForm1: TbsBusinessSkinForm;
bsSkinData1: TbsSkinData;
bsCompressedStoredSkin1: TbsCompressedStoredSkin;
bsSkinPanel1: TbsSkinPanel;
bsSkinPanel3: TbsSkinPanel;
bsSkinPanel4: TbsSkinPanel;
bsSkinStatusPanel1: TbsSkinStatusPanel;
bsSkinPanel2: TbsSkinPanel;
bsSkinDBNavigator1: TbsSkinDBNavigator;
ds_CustClass: TDataSource;
bsSkinMessage1: TbsSkinMessage;
bsSkinDBGrid1: TbsSkinDBGrid;
SQL_CustClass: TSQLDataSet;
DSP_CustClass: TDataSetProvider;
CDS_CustClass: TClientDataSet;
CDS_CustClassCUST_CLASSID: TStringField;
CDS_CustClassCUST_CLASSNAME: TStringField;
Button1: TButton;
procedure ds_CustClassStateChange(Sender: TObject);
procedure bsSkinDBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
public
end;

var
FormCustClass: TFormCustClass;
blShowForm:boolean;
GetClass:String;
DataModule1: TDataModule1;
function ShowForm: bool;export;
exports ShowForm;
function GetCustClass:String;export;
exports GetCustClass;
implementation
{$R *.dfm}
function ShowForm: Bool;
begin
{create the form}
formCustClass := TFormCustClass.Create(nil);
// Application.CreateForm(TFormCustClass, FormCustClass);
{must be modal for DLL calls (never modeless) }
try
Result := (FormCustClass.ShowModal = mrOK);
finally
FormCustClass.Free;
end;
end;
procedure TFormCustClass.ds_CustClassStateChange(Sender: TObject);
begin
Case ds_CustClass.DataSet.State of
dsInsert:
bsSkinStatusPanel1.Caption := '資料新增模式';
dsEdit:
bsSkinStatusPanel1.Caption := '資料異動模式';
dsBrowse:
bsSkinStatusPanel1.Caption := '資料檢視模式';
end;
end;
procedure TFormCustClass.bsSkinDBGrid1KeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then
keybd_event(VK_TAB,0,0,0);
end;
procedure TFormCustClass.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if cds_custclass.ChangeCount > 0 then
begin
cds_custclass.ApplyUpdates(0);
bsSkinMessage1.MessageDlg('資料已更新完成!',mtinformation,[mbOk],0);
end;
end;
procedure TFormCustClass.FormShow(Sender: TObject);
begin
DataModule1 := TDataModule1.Create(Application);
sql_custclass.SQLConnection:=datamodule1.connGLB;
try
if ds_custclass.DataSet.Active = false then
begin
ds_custclass.DataSet.Open;
end;
except
on e:exception do begin
showmessage(e.Message);
end;
end;
end.
nokia2005
一般會員


發表:27
回覆:18
積分:9
註冊:2006-12-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-04-16 11:32:43 IP:220.228.xxx.xxx 訂閱
這是客戶類別dll
而另一個的客戶資料又是另一個dll


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