结果有一天笔者和朋友要用BDE+ODBC使用SQL SERVER数据库。我使用ODBC数据源作BDE的别名,编写好程序,结果程序运行时老是要产生一个注册进入数据库系统的注册框,怎么想办法都屏蔽不掉,没办法,只好上网查询或咨询,结果用了几个月时间询问了几百人几百站均没有正确的回答。笔者买了所有DElphi和cbuilder关于BDE和数据库方面的书,却发现所有的书上所说的跟网上所有的BBS和论坛上所说为了解决这个问题的讨论笔者均不知如何实现(可能以前看书不够仔细,没有看出个所以然来,所以走了不少弯路),笔者看不出问题出在何处,笔者和朋友花了大量的时间解决问题之所在,终于解决了这个问题。
下面是笔者winhelp和朋友fquser在新浪聊天时关于此问题解决的真正方法和笔者所走的弯路的的原因,以供大家参考。已经搞懂的朋友请大家提出宝贵意见,尚有此问题的朋友请参考本文。
不足之处请大家见谅,并不吝赐教。
笔者信箱:winhelp@sina.com
winhelp OK
winhelp 我终于弄懂了delphi的数据库了,你呢
FQUSER: 没有,那个框还是消不了,主要是要新的版本才行
winhelp 妈的所有的人说的均无法真正的屏蔽,我说的是网上
winhelp 不会的,我的老版就行,所有人说的均不正确
winhelp 我闲着没事玩了一天才搞懂的
winhelp 包括说明书上说的均不正确,也无法实现的,
FQUSER: 不可能呀
winhelp 真的,我已经通过了SQL SERVER7。0的ODBC了
winhelp 完全没有注册框的
FQUSER: sql server的用ADO当然行了,informix你也弄定了??
winhelp 也没有用额外的控件的啊
FQUSER: 是吗,用BDE上吗
winhelp 当然是BDE自己的了
winhelp 完全用BDE/ODBC,不用ADO或DB—ACCESS之类的功能
FQUSER: 那是利害了,怎么上的呀,我一直用ADO来解决的
winhelp ADO多麻烦
FQUSER: 不一样吗,可惜是,老的informix不支持ADO
winhelp 你在窗口上随便放一个DATABASE控件,然后填入aliasName的别名(也就是BDE别名)
FQUSER: 在什么地方解决这问题呀
winhelp 然后不管三七二十一,在databasename上仍填入上面的别名
winhelp 要求相同
winhelp 注意有两点和手册上的说明不同,手册上的记载不可能实现的
FQUSER: 是吗,我试试看
winhelp 等一下,还有
FQUSER: loginprompt设为flase吧
winhelp 如果你要自动注册,应当使用loginprompt=true,然后设置onlogin事件,填入密码和用户名,用false是不行的
winhelp 你记住,大家说的错就在这儿
FQUSER: 书上不是说用FALSE
FQUSER: 是吗,我试下看
winhelp 另外,用户名前缀说的是"user name"不是username
winhelp 中间有个空格,一定要有
winhelp 而且onlogin只对true有效才不会出现窗口
winhelp 书上说的false是不行的,
winhelp false只对params有效,但也不一定行,还是添加onlogin保险
winhelp 你以前用的user name加了空格了吗?
FQUSER: 是吗,我正在试,不知能不能行了,要行,真解决大问题了
winhelp 你只要将databasename设为与别名相同
winhelp 与BDE别名相同就解决了大部分了,再设置onlogin事件就行了
FQUSER: 是吗,真奇怪了
winhelp 什么loginparams->values["user name"]="myname"
winhelp 之类的就行了
winhelp 密码的password无空格
winhelp 试出来了吗
FQUSER: 我没用onloing不行,现在正写
winhelp loginparams->values["password"]="abcdefg"
winhelp 注意大小写和引号
FQUSER: 啊,搞定了,鸟人真是利害
FQUSER: 真是奇怪为什么所有的资料都是错的
winhelp 当然是错的了,上了borland的当了
FQUSER: 可一用应人人都知是错了
winhelp 你别忘了,没有多少人回答问题的人是真正用它的
winhelp 就像我一样,以前是从书上抄来的告诉你的
FQUSER: 他奶奶的
FQUSER: 你现在开始用了
winhelp 书还不是只对手册进行翻译或抄来别的书的,骗人的
winhelp 是啊
FQUSER: 妈的,可我怎也不会想到在databasename上写这个呀,你怎想到的真是利害 数据挖掘研究院
winhelp 随使放一个database控件,随便哪个窗口都行,不一定要是启动窗口
winhelp 妈的还不是没事干,刚好我懒得选择,就在粘板上留了一个,打算用在table和query上,结果一不小心复制位置错误,放在了database上,结果就好我,害得我试了老半天才知问题在这个属性上
winhelp 而且关键的另一个属性必须是true而不是false才响应onlogin事件,
winhelp 用false事件任何时候都出现窗口
FQUSER: 是呀,有两个地方都不一样
winhelp false属性,写错了
winhelp 不信你试试false,删除掉onlogin或保留,另在params中填入下面
winhelp user name="abcdefg"
winhelp password="xxxxxxx"
winhelp 没有密码就不用写第二行,无论无何均是不行的
winhelp 只要databasename没有设置,均不会正确的结果
winhelp 空格问题也是我费了好大劲才发现的
winhelp false属性,写错了
winhelp 不信你试试false,删除掉onlogin或保留,另在params中填入下面
winhelp user name="abcdefg"
winhelp password="xxxxxxx"
winhelp 没有密码就不用写第二行,无论无何均是不行的
winhelp 只要databasename没有设置,均不会正确的结果
winhelp 空格问题也是我费了好大劲才发现的
FQUSER: 刚BC死了
FQUSER: 气死我了
FQUSER: 刚死机了
FQUSER: 刚上来
winhelp 我也是被气坏了,找了一天才搞定的
FQUSER: 是呀,我在试个就知了
FQUSER: 鸟人真是利害人才,在这真是可惜了
winhelp 所有的BBS上的也是不行的,害得我在家查了好多地方,均没有正确的
winhelp 是啊,只是个库管员,
FQUSER: 是呀,那时我给你说,你老不信
winhelp 我当时没在意吗,谁会想到所有的地方说的均是一样的,但就是不行呢

