几个数据库方面的问题,能提供系统、全面解答者,100分奉上!!!
jzy 2000-03-12 09:08:00 Delphi也用了这么久了,关于数据库的程序也写了不少了,但是有几个问题却一直没有搞清楚,尽管这并不影响我正常的编程,但是憋在心里搞不明白总觉得不爽,因此特在这里提出来,请教各位大虾,能提供系统、全面解答者,一百分尽数奉上!
其一,是关于BDE Administrator,其作用嘛,其实也就是用来为几个数据库建立别名(Alias),以便于Delphi程序的访问,跟用ODBC建立DNS的方法大同小异。我不明白的就是:为什么Administrator要为每个Databases提供一个Open(也就是双击)命令?
如果只是Alias,用个Open,虽然什么也看不到,不过也无伤大雅;但是对于那些数据库驱动(我也不知道是不是应该这样称呼,呵呵,反正大家都明白,就是图标跟Alias不同的那些:-),如果也用个Open,将导致弹出一个错误提示,而且据我的经验:双击MS Access DataBase还只是有错误提示,如果不幸双击了dBASE Files的话,将导致程序停止响应,得用Ctrl+Alt+Del才能把Administrator结束。我实在是不懂,这是为什么?
其二,跟着BDE Administrator的,就是SQL Explorer了,后者跟前者相比呢,这个Open命令还多少有了点作用,至少对于Alias,可以查看下面的结构了,但是对于数据库驱动(咱姑且这个称呼:-),还是老毛病。我也想问问各位大虾,这个数据库驱动,用BDE Administrator或是SQL Explorer,究竟是可以打开的么?
我反正是无论如何也打不开的,即使在DATABASE NAME里面加了完整的路径和文件名也没有用:-)如果不能打开,又提供一个这样的命令干什么?
其三,跟上面两个也有点关系,就是:Alias究竟是个什么?
我们在前面两个工具中设置Alias的时候,都是指明了DATABASE NAME的,那么应该是说:Alias是指向了特定的数据库的。但是事实又不是这样:
例如,在使用一个TDateBase的时候,按照Delphi的帮助文件的说法,访问一个没有建立Alias的数据库,如果设定了DriverName和Params的话,就不需要再设置AliasName了,但是我试了多次都行不通。但是如果我设置AliasName为MSACCESS1(假设这是一个指向c:\data0.mdb的Alias),然后在Params中加入一条DataBase Name=c:\data1.mdb(先调出Default,然后再修改的,前面设定也是这样做的),那么最后我访问的将是c:\data1.mdb,而不是Alias所指向的c:\data0.mdb!这样的话,设置DataBase.AliasName为MSACCESS1,又起个什么作用呢?
另外,也想请教,如何才能不设置AliasName,通过设置DriverNamne和Params访问没有建立Alias的数据库呢?
呵呵,说了一大通,可能看了也比较烦,不过希望各位大虾不要介意,能够指点小弟的话,更是感激不尽!