老弟,你问的问题真是又大又笼统. 你的第一个问题,动态的打开不同类型的、不同目录的、不同文件名的数据库文件中的"动态"是指由提供一个列表让用户动态选择吗? 在程序中动态的定义、管理数据库别名不是一件难事,只需动态生成一个TDataBase控件,并用程序给此Tdatabase控件设置别名等参数就行了。关于这方面的资料你可查阅徐新华著的《Delphi4.0核心编程技术》,里边对于数据库编程有很详尽的描述。电子版在网上有很多站点可下载。 至于你问的最后一个问题,我想你首先得找到数据库文件,再根据其扩展名推断出数据库类型。很多DBMS提供数据导入的功能,你可以很方便的利用这一功能导入数据。
给你说了这么一大堆,是不是可以给多一点分?我可费了好长时间打字喔!
给你说了这么一大堆,是不是可以给多一点分?我可费了好长时间打字喔!
解决方案 »
- 忙我解释一下这段代码,越详细越好
- 如何用DELPHI启动VC6,同时打开一个文件;换言之VC6提供哪些编程接口供我们去使用?
- 做过进销存的请进
- 请问返回数据集的函数返回类型该怎么声明 ?
- 哪有实现API直接打印的控件或代码?
- Delphi7中使用adoQuery+DataSource+DBChart无法完全图表的问题
- 一个关于TABLE的小问题
- 关于网络传真程序的疑问!急急急急急急急急急急急急急急急急急急!!!!急急急急急急急急急!!!
- 由VFP转入D6大家庭--初级问题(能给多少分就给多少分)
- 告诉我你的OICQ号码,就给分,Delphi交朋友
- DELPHI中如何在DBText中实现.....
- Hook的问题,高手请进
你好!首先谢谢你的指点! 我的问题并不太笼统.第一个问题和最后一个问题是一块的.正如你在最后一个问题中所提到的一样.我想你已经明白我的意识了.
具体的说就是:我的程序分为两部分,主模块和数据采集模块.数据采集模块是以软盘的形式分发给用户的.当用户那到数据采集盘时就要根据我的要求输入数据到采集库中.我的问题是:当我需要的数据已经部分存在于客户的数据库中时.我的程序如何能将已有的数据直接导入我的采集库中?用户的数据库类型..我并不知道.我所说的动态就是指这个.不知是否恰当.谢谢
我的问题比较急,如能及早解决,我定高分回报!
你的意思是不是说,用户的数据库类型不止一种,你要做一个可自动识别数据库类型的数据导入程序。不知道你的用户一般用什么数据库,像Access,foxpro等文件型数据库在库文件的头部都有一定的标识字节,我想,通过判断这些标识字节应可以识别数据库类型。识别出类型后,就可以动态生成相应的数据库别名,接下来就可以导数据了。
您好!你所说的正是我的意思.关于您的思路我也曾经考虑过.但由于我是一个新手.鉴于才疏学浅,一直没有想到很好的解决对策.所以小弟希望您能具体的讲一讲该思路在技术上如何实现.包括数据库类型的鉴别和数据别名的管理及数据导入.见笑了.谢谢!定重谢!
至于说具体实现方法,由于我没有亲自试过,也只能是说一下大概的实现过程,希望能对你有所帮助. 具体实现步骤:
1. 判断数据库类型. 如上面所述,以二进制形式打开文件,查找文件中的特征字符,以此区分不同类型的数据库. 2.连接数据库. 这是整个实现过程中最重要的一步, 关键是要充分利用TDataBase 控件的强大功能. 通过改变TDataBase的连接属性,可分别连接不同类型的数据库. 利用这一特点, 你在判断出数据库类型后,设定好TDataBase相应的连接属性就可以连接不同数据库了. 要想知道每种数据库的连接属性, 可右击TDataBase控件选DataBase Editor菜单,你可看到一个对话框,选好Driver Name后按Defaults按钮就可看到对应此种数据库需设定的连接属性. 可利用Case 语句设定每种数据库的连接属性,实现动态连接.关于TDataBase控件的使用方法可参看徐新华先生的《Delphi4.0核心编程技术》,我这里有电子版,如果你想要,请告诉我. 3.导入数据。这里有一个难点,就是如何获取用户数据库表结构的问题。不知道你是否知道用户的数据库中对你有用的那些字段的信息(如:字段名,类型,长度),如果每一个用户数据库的这些字段的信息都相同的话,那就好办了,只需做一个函数,将这些字段的数据写入你的数据库表的相应字段就行了;如果每个用户的数据库的字段信息都不相同,就要做一个界面,针对不同的数据库由用户输入相应的字段信息,然后根据这些信息读取表的数据再导入你自己的数据库中;如果连最基本的字段信息都不知道,那就很难办了,我知道有一个BDE API:DbiOpenFieldList可以列出表的字段信息,获得表的字段信息后就可以作相应的处理,至于能怎么处理就要看你的具体情况了。 以上就是我的一些想法,你可以试一下,希望能帮到你。