BDE连接数据库奇怪的问题。各位请看看。(50分)

  • 主题发起人 主题发起人 sunwork
  • 开始时间 开始时间
S

sunwork

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个系统是使用C/S结构,使用DELPHI5+SQL65+WINDOWS NT 4。
近来系统升级,我将服务器升到WINDOWS 2000 SERVER + SQL7,客户端没有改变,
SQL7的数据是使用IMPORT的方法导入的,存储过程用手工加进去。
奇怪的问题发生了, 我用DELPHI制作的系统可以使用数据库里面的数据,但是不可以使用
里面的存储过程,错误提示中是说找不到这存储过程。我打开源程序重新编译一次,
发现源程序里面是可以找到并且选择这存储过程的,但是就是编译执行就有问题,在编译环境下
问题是一样的。但是我用ASP调用存储过程的时候就没有任何的问题。
各位知道这是什么原因吗?或者有什么经验和解决的方法吗?
 
是否是用D5的那个存储过程控件来调用的?那个控件很神经的,别用他。用TQUERY就行了
 
MS SQL SERVER没用过
只是想提示一下

手工加的时候你是用什么用户帐号登录的
存储过程明明存在
而在你的程序执行时找不到
应该是权限问题.
至少在ORACLE里是这样

1.写存储过程时没有写用户模式前缀: TESTUSER.TESTPROC
2.手工加存储过程时用了一个别的用户, 而不是程序里写的那个用户
3.或者你根本忘了加用户前缀

ORACLE 里对由于权限不足无法访问的对象
一般都报一个对象不存在的错误.
 
D4不支持MICROSOFT SQL SERVER7的存储过程,如果你的程序以前是用D4的话要小心。
以后倒出倒入数据请不要用微软或BORLAND提供的东西,可以使用SQL:
DUMP DATABASE (数据库名) TO DISK=‘(新文件名)’;

restore filelistonly from disk='';
restore database ... from disk='...'
with move '..' to '..'.....
;

 
to 笑傲江湖,我倒数据的时候使用的是一个新建立的帐号,但是拥有超级用户的权限的。
我系统D5的系统用SA登陆,结果一样。如果问题出在这里,如何解决。
什么是用户前缀,我没有用过。如何改变。

to 吴剑明,我用TQUERY没有办法调用存储过程的。

to KERRIGAN,我的系统开始的时候是用D4开发的,后来才改用D5,这问题依然存在吗?
 
你只要把Delphi前台程序中引用的存储过程名称后面的;1等去掉就是了。因为SQLServer7。0对
对DBLibrary的支持不够。
 
存储过程名称后面的;1是什么意思的,我只是知道用,不知道是为什么,请指点一下吧。
 
表示同一个存储过程的版本。同一个存储过程可以通过;1,;2....建立多个版本。
在SQL Server好像叫Group One,Group Two,.......
 
是这样了,不行把source贴出来吧
 
经过试验,shincolu的说法是正确的,高人呀,经验丰富啦,可以留地址吗?
感谢 其他参与讨论的热心,表示谢意。
 
接受答案了.
 
客气,我也是凑巧碰到过类似问题而已。如果大家愿意,我们可以互相学习、讨论!
(不过首先,我得申明我不是什么高人)。我的Email :shincolu@263.net。
 
后退
顶部