BDE中关于ACCESS97的"General Sql Error",紧急求助!谢谢谢谢

hjy2000 2000-09-08 12:30:00
本人在BDE中使用本地驱动(非ODBC方式)对ACCESS97文件建立别名,数据库无密码,DLL32使用的是IDDA3532.DLL,版本5.1.1.1(0)
起初一切正常,可编程连接数据库.但一天在BDE Administrator
中突出现BDE错误:General Sql Error(13059)
-2147221164
Table
Alias:MSACCESS3
为解决问题,重装过WIN98(第二版),BCB5.0企业版,OFFICE97后,AUTOEXEC.BAT中也添加了BDE/BIN路径,DLL也确定为IDDA3532.DLL,BDE Administrator 版本为5.01,在此处也搜寻过相关问题,但未找到方法,问题未解决.现程序无法编下去,十分着急,恳请各位援助,谢谢.
也可给我发邮件:hehe8888@21cn.com
...全文
511 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cjxg123 2010-05-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hank 的回复:]
下面的部分是我在大富翁论坛山的发言,主题是如何连接ACCESS数据库,不是很详细,但是足可以说明
********************
我首先根据我的经验献丑了:
1、通过BDE
如果通过BDE,那么速度会快一些(相对ODBC),连接是需要DAO支持,具体方法是:
BDE->Configuration->Configuration->Drivers->Native->MSACCESS……
[/Quote]
请问:最后说明的是每个人都关心的问题:怎样取消掉密码对话框?
无论通过BDE或ODBC,要取消密码都要建立TDatabase控件,设置AliasName,将LoginPrompt
属性设为True,具体只是Params属性的参数不同
如果通过ODBC连接,那么要设置
USER NAME=yourname
PASSWORD=yourpass
如果通过BDE连接,那么要设置
Password=yourpass
不能混淆,否则出错!
这段你所说的设置AliasName,将LoginPrompt
属性设为True,具体只是Params属性的参数等怎么改这方面我什么都不懂现在正在做一个Delphi得作业涉及到数据库的问题麻烦帮忙解决下。
BCB 2000-09-15
  • 打赏
  • 举报
回复
再向Hank求教一个问题:
  MAACCESS数据库应用程序发布后,
若其它用户将DLL32=IDDA3532.dll改
成DLL32=IDDAO32.dll,我的程序将出错,
有无办法在程序中直接设置或控制这个关
键参数,或有无其它对策!!!
BCB 2000-09-15
  • 打赏
  • 举报
回复
非常感谢Hank,我们原以为BDE驱动程序是独立的东西,
原来它也仅是一个“壳”,只是利用SQL调用DAO 
而已!!!!!!!原来如比!!
BCB 2000-09-15
  • 打赏
  • 举报
回复
非常感谢,的确是DAO受到了破坏,BDE的MS ACCESS
驱动程序 是利用SQL语句调用DAO才实现的,若将
DAO目录改名,用BDE 打开MSACCESS 库
就会出现Sql Error之类的错误。还好:DAO是微软的
东西,否则“ 发布” 时又要考虑将DAO打包了。

谢谢Hank!!!!!
Hank 2000-09-15
  • 打赏
  • 举报
回复
看我总结出来三种方法,你就明白我为什么不趋向于用BDE连接ACCESS数据库!
其实所有的数据库都存在这种问题,除非手工配置BDE,否则没戏!
用ODBC,可以在安装时手动配置注册表!
Hank 2000-09-14
  • 打赏
  • 举报
回复
下面的部分是我在大富翁论坛山的发言,主题是如何连接ACCESS数据库,不是很详细,但是足可以说明
********************
我首先根据我的经验献丑了:
1、通过BDE
如果通过BDE,那么速度会快一些(相对ODBC),连接是需要DAO支持,具体方法是:
BDE->Configuration->Configuration->Drivers->Native->MSACCESS->DLL32
将DLL32的值设为IDDA3532.DLL;
然后可以直接引用了,举个例子:
BDE->Databases->Databases->New->从Database Driver Name中选择MSACCESS->DATABASE NAME
将DATABASE NAME的值设为你自己的数据库即可

2、通过ODBC
打开控制面板,双击“32位 ODBC”图标,出现“ODBC 数据源管理器”对话窗口,然后单击“添加”按钮,出现“创建数据源”对话窗口,选择Microsoft Access Driver,然后单击完成,出现“ODBC Microsoft Access 97 安装”对话窗口。在“数据源名”文本框中输入数据库别名,“描述”文本框中输入相应的描述,然后单击“选取”按钮,选中系统的数据库,然后单击“确定”按钮即可完成

3、通过ADO
在设计阶段建立TADOConnection和TADODataSet控件,将TADODataSet控件的Connection属性设为TADOConnection,然后设置TADOConnection控件的ConnectionString属性即可连接。
具体方法:
单击ConnectionString对话框,选择Build...,单击下一步,然后可以根据你的实际情况连接!

经验:无论通过那种方法连接,都需要MDAC(含ODBC)及其相关连接库支持,通过BDE连接也需要
DAO支持(不需要ODBC),不过可以在安装Office时选择
最后说明的是每个人都关心的问题:怎样取消掉密码对话框?
无论通过BDE或ODBC,要取消密码都要建立TDatabase控件,设置AliasName,将LoginPrompt
属性设为True,具体只是Params属性的参数不同
如果通过ODBC连接,那么要设置
USER NAME=yourname
PASSWORD=yourpass
如果通过BDE连接,那么要设置
Password=yourpass
不能混淆,否则出错!

至于别的在实际应用过程中的问题就不一一累述,需要注意的是:通过BDE连接不能辨认数据库的
Procedures!

********************
MDAC即Microsoft Data Access Components,是微软的数据库连接控件!
至于为什么有时连接上,有时连接不上,估计是安装BCB5过程中的问题,我上面说的很清楚
-----安装BCB5,如果你是自定义安装,那么你是否还记得在安装过程中的Access数据库选项,在BCB中是Access2000或Access97-----

其实,正是因为我不清楚安装DAO到底需要什么DLL文件,所以我才用ODBC!至于第三方控件,那就免了,我倒是下载了几个,很不兼容,所以就算了!

如果想得到MDAC,可以到我的主页下载:
http://starfarm.363.net

http://starfarm.363.net/Download/Download.htm

我曾经试过:通过ODBC,从VFP数据库向ACCESS数据库转入750条记录(21个字段)要1分钟!(C333,64M)

加分的PASSWORD是你在CSDN上注册时的用户密码!
hjy2000 2000-09-13
  • 打赏
  • 举报
回复
有一些基本的东西挺模糊的请解释一下:
1。DAO应是微软提供的它与BCB 的 BDE 是什么关系?
2。我认为BDE 中 MSCCESS(97)驱动与是否安装OFFICE97无关
因为当我最后一次重装(也就是BDE 正常的那次),我先装的BCB50
在装OFFICE97 之前,我TEST BDE 的ACCESS驱动此时已能打开MDB文件
你认为了?
3。是否有脱离BDE 的ACCESS驱动的第三方控件,有使用心得吗?何处下载?
4 MDAC 请介绍一下(扫盲),ODBC能慢多少(数据量较大的库)?
谢谢
另:如何给你加分,上面的筐是写 PASSWORD??? 
hjy2000 2000-09-12
  • 打赏
  • 举报
回复
谢谢 Hank
看到你的提示后我查找这个文件,它确实存在也是相同的目录下
但问题依旧。
后来经过N次重装(PWIN98->BCB50->OFFICE97),就象出现问题
时一样突然,它又突然正常啦!令我惊呀是,在此目录下无DAO350。DLL
,但BDE的ACCESS驱动正常啦。WHY?
hjy2000 2000-09-12
  • 打赏
  • 举报
回复
test
Hank 2000-09-12
  • 打赏
  • 举报
回复
一般情况下是先安装Office97,或者VB之类的资料,DAO就直接安装到C:\Program Files\Common Files\Microsoft Shared\DAO\,此目录是默认目录
如果你首先安装BCB5,如果你是自定义安装,那么你是否还记得在安装过程中的Access数据库选项,在BCB中是Access2000或Access97,其实是在此过程中安装的,因为它存在冲突问题(虽然存在几个,但是注册表中的路径只有一个!),所以会存在这种问题!
因为牵扯到发布的问题,我很少用DAO(我不知到底要发布那些文件!),而是用ODBC,它可以通过MDAC发布,只是速度慢一些而已!
Hank 2000-09-08
  • 打赏
  • 举报
回复
很简单,你的DAO35.DLL文件丢失!
文件位于:C:\Program Files\Common Files\Microsoft Shared\DAO\目录下!

如果没有,可以添加安装Office97把DAO添加进去!

祝你好运!

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧