您的位置:程序门 -> delphi -> 数据库相关



怎样用delphi编写一个dll供其它开发工具调用来操作数据库


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


怎样用delphi编写一个dll供其它开发工具调用来操作数据库[已结贴,结贴人:zbplayer]
发表于:2007-06-10 22:32:53 楼主
目的:生成一个dll,提供函数供其他系统调用来操作自己系统的数据库!

            包括查询,插入,更新,删除!

其实就是给自己的系统提供一个接口!

使用什么方法比较好,其它工具开发的也行,只要好用!

希望能提供示例程序,数据库是oracle9i
发表于:2007-06-10 22:55:021楼 得分:0
像这种跟具体业务有关的东西,
别人写了也没什么用处
还是自己写吧
发表于:2007-06-10 23:17:572楼 得分:0
楼上的朋友,能不能提供个相关简单的示例,实行基本数据操作功能的!

具体函数我参照着自己写!

主要是没搞过delphi...系统是pb开发的,没法做这样dll!
发表于:2007-06-11 10:58:543楼 得分:0
pb也可以的,作成com就ok了,调用时当做ole调用就ok
发表于:2007-06-12 10:59:124楼 得分:0
谁来点实例我好结贴啊,呵呵!
发表于:2007-06-12 14:38:555楼 得分:5
我到是写过一个,就是执行sql语句的,要不要?
要的给我发邮件啊
frankie_2424@hotmail.com
发表于:2007-06-12 14:54:026楼 得分:0
pb本身操作数据库相当方便,为什么非得使用delphi呢?
发表于:2007-06-12 16:18:067楼 得分:2
需要的话,留下邮箱
发表于:2007-06-12 16:39:468楼 得分:0
pb本身操作数据库相当方便,为什么非得使用delphi呢?


------   pb   没法做接口   dll   啊
发表于:2007-06-12 16:41:489楼 得分:0
邮箱:

zbplayer@qq.com

zbplayer@163.com

谢谢!!
发表于:2007-06-13 00:06:1310楼 得分:0
oasis_wsc@126.com,来一份学习学习!谢谢
发表于:2007-06-13 11:24:4611楼 得分:0
就用delphi新建一个dll工程,写几个操作数据库的函数不就行了。
发表于:2007-06-13 23:40:1712楼 得分:0
难者不会,会者不难啊,楼上的,唉。。。。。。!

不过现在在几位朋友的帮助下,也了解了些,测试成功,只是想做的更完善些,

希望得到多点学习资料!
发表于:2007-06-14 08:32:1413楼 得分:5
我写过一个com,
全部封装好了.

查询,插入,更新,打印导入导出.
支持连接4种数据(access,sqlserver,oracle,mysql)
需要的话,联系我qq.
发表于:2007-06-14 08:56:0514楼 得分:3
这类东西建议做成com/activex方式的
发表于:2007-06-14 10:08:3015楼 得分:5
我们是写成dll,用户按我们的格式传入以%%分割的数据,我们执行对应的交易操作,并返回成功与否及错误警告信息.不过执行是通过tuxedo中间件调用后台的存储的.
3.1. (交易02)获取参保人信息
交易流水号 0(表示此交易不需要申请交易流水号,以下同)

sinmsg 内容
域1(保留) 0
域2(卡信息) 医保ic卡号
域3(保留)
域4(保留)
例:0~10021002~~

soutmsg 内容
域1(交易状态)
域2(错误信息)
域3(ic卡) 完整的ic卡数据,具体含义参考ic卡数据定义
域4(写卡方式) 0
域5(保留)
域6(保留)
域7 身份验证结果(16位)
含义(位数从左边开始,判断优先级:1,2,8,9,3,4,6,7):
第1位:卡被冻结或作废(黑名单)
第2位:参保人员是否有效(0:参保   1:没参保或不存在此人)
第3位:人员基本医疗黑名单冻结(黑名单)
第4位:人员大病医疗黑名单冻结(黑名单)
第5位:住院冻结(正在住院中)
第6位:当年账户被冻结(黑名单)
第7位:往年帐户被冻结(黑名单)
第8位:处于医疗等待期范围(不能享受待遇)
第9位:处于医疗限制期第一年(即五年磨合期,不能享受待遇)
其它位:10-16位保留
域8 参保人员类型(1企业医保/3机关医保)

例:0~~a000000002                 141               11   1     1     0330184820228651       沈                 2杭州                                                     1900-01-01000000000.00000000000.00000000000.00000000000.00000000000.00000000000.00000000000.00000000000.00000000000.00000000000.00000000000.00000000000.00000000000.000000000000         1900-01-011       1       1       ~~~~0001000                   ~1
上面是我们基本的一个交易
发表于:2007-06-14 11:24:4116楼 得分:0
楼上的朋友,不奢望能提供相关的详细源码,不过能给小例子参考下吗!
发表于:2007-06-14 17:27:1217楼 得分:0
1.3.4. f_trade
函数定义 int   f_trade(int   type,double   code,const   char   *   sinmsg,char   *   soutmsg   ,   const   char   *   sinmsg2)
所属dll trade.dll
功能 各类用户业务的交易接口
说明 此类可以动态加载也可以静态加载,如果软件需要更新,静态加载一定要在更新之后进行,否则将导致软件无法更新
参数说明 type 用户交易类型
code 交易流水号(0表示不需要申请,否则传入通过独立交易获得的交易流水号)
sinmsg 入口参数,具体内容参考每个用户交易定义
soutmsg 出口参数,具体内容参考每个用户交易定义
sinmsg2 入口参数2,传入空字符串即可
返回结果 > =0   ---------   函数调用成功,信息在soutmsg,其中返回参数为0表示完全成功没有任何提示信息,返回参数> 0表示交易虽然认为成功,但是有一定问题,有返回提示信息(例如重复调用取消住院登记申请,第一次返回为0,第二次返回> 0)
<0     ---------   函数调用失败,信息在soutmsg。
这是交易函数的文档里的
发表于:2007-06-14 17:35:0118楼 得分:0
你可以根据实际情况参照,比如可以设计3个函数(初始化,交易和配置),初始化用来检查数据库连接是否正常,更新交易列表(把所有操作规定为一个交易,并定一个交易编号,写到数据库里,初始化的时候得到这个列表,写到配置里,用来再调用交易时可以先检查是否存在这样的交易,当然你也可以不写,到存储里判断),交易函数用来根据交易编号完成各种操作,如果你的sql执行不在这里进行的话,这里只要起转发和调用就可以了,比如我只是用来call后台的存储并将格式化的数据传过去.这样存储就要用通用的拆分函数.配置函数可以对一些设置进行配置,并保存到ini
发表于:2007-06-14 19:55:2219楼 得分:0
fenger8293(http://www.pceggs.cn/pgcomdefault.aspx?id=191016)   (   )

这位朋友貌似做医疗保险的啊?
东软的?
发表于:2007-06-15 09:04:4120楼 得分:0
很简单,
1.做一个bpl将所有数据表结构映射为类,所有字段映射为属性,与数据库解耦(模拟hibernate)
2.做一个com+(objectbroker),用com+调用dll,dll里将每个对象的属性,行为封装起来,这样就与开发语言没有关系了
发表于:2007-06-15 09:05:5221楼 得分:0
注:dll封装的每个对象的属性可由bpl提供!
发表于:2007-06-15 11:13:1822楼 得分:0
sxtdxvb:是做医保的,不过不是东软的
发表于:2007-06-15 14:22:2423楼 得分:0
to:fenger8293

我说嘛,怎么看着你贴出来的很熟悉,呵呵.

不过,你贴出来的局限性很大的.后台数据库写死了
用户没有执行sql的能力,交易完全被你函数限定死了
只能是一类功能的接口啊.
发表于:2007-06-15 14:46:0124楼 得分:0
既然接口是给别人用的,当然要限制好,否则用户随随便便操作数据库不死了
发表于:2007-06-15 15:42:3325楼 得分:0
嗯,我觉得接口也该如此,像个暗箱.
发表于:2007-06-15 16:19:2526楼 得分:0
人家   要得是   "怎样用delphi编写一个dll供其它开发工具调用来操作数据库   "

来操作的,而不是楼上2位的,具体到实现某个函数.
发表于:2007-06-15 16:20:5427楼 得分:0
你那已经和具体业务绑定死了,说白了,除了要做医保,你的接口在其他用户来说
并无调用必要,所以,接口是接口,工具是工具,呵呵.
发表于:2007-06-18 08:44:5528楼 得分:0
希望有具体实现的例程参考下~~   简单的,格式化的就行!

函数本身不重要,我可以参考照着写!

其实楼上的几位说的各有道理,我主要是想要掌握这种方法!

给别人做接口就要保密,限制权限,毕竟自己系统的数据库不能随便让人操作!


快速检索

最新资讯
热门点击