怎样在Delphi中引用DAO建立Access数据库(70分)

  • 主题发起人 主题发起人 lyshulin
  • 开始时间 开始时间
L

lyshulin

Unregistered / Unconfirmed
GUEST, unregistred user!
我是一个Delphi新手,想用DAO和Delphi编程,要可以建立Access数据库文件
*.mdb.我用Delphi中的Import Type Libary引入DAO3.5类库,可以用
opendatabase 打开Accessov数据库,但用Createdatabase建立数据库时
总是告诉"找不到链接表中的国别字串".语句是:
var
dbe1:DAO_LAB._dbengine;
db1:DAO_LAB.database;
begine
db1:=dbe1.createdatabase('c:/newAccess.mdb','dblanggeneral',dbversion30);
...
end;

其中dblanggeneral换成dbSortChineseSimplified也不行,错误同样。
国别字串是用来数据库记录排序的,在创建数据库时不可缺。我实在想不通,
不知是否有别的设置。
 
你可以用Access创建一个空的数据库。
以后要在创建只须直接拷贝一个。
 
呵呵,D5好象直接可以用DAO,是不是简单些呢?
 
to cytown: D5直接可以用ADO, not DAO.
 
to Hexi:
实际问题没那么简单,必须运行时创建数据库。以前有人讨论过这方面的问
题,但我认为讨论结果不完全。请给出具体方法。
 
首先声明,由于我的机器出了问题Delphi不能进入,故未经测试.

从BDE5.0以上版本开始支持Access的本地驱动,就是利用DAO来实现的,
你只要建个别名,指明类型为MSACCESS即可,可以利用TTable的CreateTable来创建
数据库.
 
hi,你可以下载个DIAMOND,看看里面的DEMO,就有CREATE MDB,里面
也有国别设置,没有问题,快去啊
 
to everyone
我的要求比较高,生成的程序要放在一张软盘里,如果用BDE是否还会要连上BDE
一起作成安装程序?Diamond控件见许多人讨论过,应该不错,我也想用,但现在
我还是强烈要求提供DAO的方法,特别是讲具体一点,有代码更是大大的好,
可别吝惜你们的智慧哟!
 
cakk:D5没敢装, 所以没概念:-)
 
天啊!没一个人去实际试试吗?就用DAO。求求你们了!
 
DAO的程序怎么可能放在一张软盘上?大的要死.
ODBC还有可能.
 
Diamond Access控件的例子中有:
dbengine.createdatabase('dbname.mdb',';LANGID=Ox0409;CP=1252;COUNTRY=0',32);
的用法,只有中间的';LANGID=Ox0409;CP=1252;COUNTRY=0'与我所试的不一样,
把这一句放到我原来的程序中就可以创建数据库*.mdb文件。但我找遍了手里的
DAO参考书,都没有发现有上面提到的设置,有谁知道这是怎么一回事么?
 
我想, 我明白了:
CreateDatabase(name, locale:string; options: integer)是正常调用语句,
而dbGeneral是const:string, 内容是';LANGID=0x0409(;CP=1252;COUNTRY=0?)',
dbversion30也是一样const:integer, 而你的Delphi程序并没有这些const,
导致调用出错.
 
to cytown:
昨天我又对照Diamond控件中的例子使用Database.CreateTableDef和Table.CreateField,
Fields.Append 方法进行了表的生成,参数也是用const才行,不过象FieldTpye
的const是可以在其它地方找到的。我又在vb5中设断点查看了Dbengine.CreateDatabase
运行时国别字串的值,发现正是"LANGID=Ox0804;CP=936;country=0",这是dbLangChineseSimplified
的值,看来其方法也得这样用才行。这个题应该基本解决了。分平分了吧,谢谢大家的回答。
如有进一步的想法,请多多指教。@_@
 
后退
顶部