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

用delphi 製作資料庫與ap的通道

答題得分者是:P.D.
joyillen
一般會員


發表:3
回覆:2
積分:1
註冊:2003-10-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-01 08:52:18 IP:220.228.xxx.xxx 訂閱
各位前輩
我想撰寫一個DLL,此DLL是用來做資料庫的存取,
這個dll可以讓其他的程式語言使用
使用者用其他的程式語言呼叫我這個dll,只需給我幾個參數(主鍵值、需更新的記錄內容)後,
我就透過這個DLL更新資料庫,
我想要請問的是,
我利用Delphi新增一個新的專案為dll型態的
我可以直接在.dpr的檔案中敘述內容嗎
可以直接只寫function在這個dll中,而不需要有任何的form嗎?
由於沒有用delphi寫過dll,所以不太瞭解
在此先詢問各位先進可行性。

不知可請各位先進指點一下及大概的點述一下,
小弟感激不盡

P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-01 10:09:56 IP:61.67.xxx.xxx 未訂閱
1.dll 與 exe 都同屬於 ap 的一種, 是 windows 早期用來與與各種程式做為溝通之用, 所以你的想法是可行的
2.dll的創建, 在 File[->New-> 選擇 New Pages 中的 Dll 模式就可以建立
3.當然可以使用沒有form的 dll, 但你要寫資料庫, 不外乎用 ADO, DBEXPRESS, BDE等等..., 這些在Delphi中都是以
視覺化的元件在操作, 如果沒有form的話, 你就必須自己完全來Create 這些物件, 將會是一個很棘手的撰寫
所以我還是會建議你用一個 main form , 但不要讓它顯示出來就好了, 這樣可以省事很多
有關 dll 的寫法, 可參考如下 (以下範例會創建 FixMang.dll

[code delphi]
library FixMang;
{ Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters. }
uses
FastShareMem,
SysUtils,
Classes,
DLLver in '..\..\Dll_UT\DLLver.pas',
U_VarDef in '..\..\Dll_UT\U_VarDef.pas',
U_VarMoto in '..\Delphi5\U_VarMoto.pas',
U_Net in '..\..\Dll_UT\U_Net.pas',
U_IBNet in '..\..\Dll_UT\U_IBNet.pas',
F_IBxls in '..\..\Dll_UT\F_IBxls.pas',
UT_SYS in '..\..\Dll_UT\UT_SYS.pas' {SysUT},
P_GetDate in '..\..\Dll_UT\P_GetDate.pas' {Form_GetDate},
DM_FixDBF in '..\Delphi5\DM_FixDBF.pas' {DM_Fix: TDataModule},
DM_FixLockDBF in '..\Delphi5\DM_FixLockDBF.pas' {DM_FixLock: TDataModule},
DM_IOfixDBF in '..\Delphi5\DM_IOfixDBF.pas' {DM_IOfix: TDataModule},
P_FixMang in '..\Delphi5\P_FixMang.pas' {Form_FixMang},
P_FixshowH in '..\Delphi5\P_FixshowH.pas' {Form_FixshowH},
P_FixBox in '..\Delphi5\P_FixBox.pas' {Form_FixBox},
P_M5001list in '..\Delphi5\P_M5001list.pas' {Form_M5001list},
D_FixMang in 'D_FixMang.pas';
exports
DLL_FixMang;
begin
end.
// ***************以上是 dll 的主 code

[/code]

===================引 用 joyillen 文 章===================
各位前輩
我想撰寫一個DLL,此DLL是用來做資料庫的存取,
這個dll可以讓其他的程式語言使用
使用者用其他的程式語言呼叫我這個dll,只需給我幾個參數(主鍵值、需更新的記錄內容)後,
我就透過這個DLL更新資料庫,
我想要請問的是,
我利用Delphi新增一個新的專案為dll型態的
我可以直接在.dpr的檔案中敘述內容嗎
可以直接只寫function在這個dll中,而不需要有任何的form嗎?
由於沒有用delphi寫過dll,所以不太瞭解
在此先詢問各位先進可行性。

不知可請各位先進指點一下及大概的點述一下,
小弟感激不盡
joyillen
一般會員


發表:3
回覆:2
積分:1
註冊:2003-10-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-12-01 10:54:00 IP:220.228.xxx.xxx 訂閱
謝謝版主提示,已經開始著手試試,謝謝
系統時間:2024-04-19 1:46:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!