怎样编写delphi4.0和MS SQLsever7.0的C/S应用程序? (50分)

  • 主题发起人 主题发起人 Harold
  • 开始时间 开始时间
H

Harold

Unregistered / Unconfirmed
GUEST, unregistred user!
我以前使用delphi4.0和MS SQLsever6.5编写C/S应用程序,后来我把MS SQLsever6.5升级到了MS SQLsever7.0,但此时SQL中的存储过程不能正确调用。

在BDE Administrator中设置如下:

Databases:
Mybase

Definition:
Type:MSSQL; DATABASE NAME:Mybase; HOST NAME:Mysever;
SERVER NAME:Mysever; USER NAME:Myname.

在delphi程序中,可以用StoredProc1的StoredProcName列出在MSSQL中的存储
过程,在其中选择dbo.use11;1。运行程序,登录MSSQL后出现以下错误信息:

Project unit1.exe raised exception class EDBEngineError with
message 'General SQL error.
Could not find stored procedure 'dbo.use11;1 '.'. Process
stopped. Use Step or Run to continue.
 
Delphi 4和Sql Server 7 有不兼容的问题
解决办法
1: 升级到Delphi 5
2: 用一个query,用Execute 执行存储过程
3: 用ODBC连接
 
建议不要使用MS SQLsever7.0作服务器端,最好用Oracle或Sybase。用Delphi连SQLserver效率很低。
 
>用Delphi连SQLserver效率很低。
乱说。小心大侠们揍你。:)

关于与MSSQL连接的问题,个人觉得用ODBC非常方便和容易,也为最后脱离BDE打下基础。
 
>>Delphi 4和Sql Server 7 有不兼容的问题
只要到borland主页下载最新的BDE就可以了.

不过连接sql 7.0, 最快的方法还是ODBC, 不是SQLlink
 
wrench简直乱说,Delphi5同样有访问SP参数传递问题
至于用一个query, 执行存储过程也是乱说,本来使用SP就是为了提高效率,另外有些工作在SERVER端完成比较好。
目前我也被这个问题困扰,我首先准备回到MS SQL SERVER6.5另外我考虑BDE通过ODBC访问SQL SERVER7,我还试过ADO,但是由于我的表里有几百个字段,用ADO速度很慢,其次我下载了SQL DIRECT控件,可以直接访问SQL SERVER,不通过BDE和ODBC,但是是Trial版本的,Tdatabase相应控件Open是有一个Form提示,不知道谁能搞定它,这样大家就有了访问SQL SERVER的好东东了。

 
我觉得DELPHI5连接SQLSEVER7很好,比其他任何工具都好
 
最好不用,因MS说从Ms SQL Server 7开始不再支持DB-Lib,而BED是用DB-Lib
 
我用sp调用sql7的存储过程一点问题也没有。你把;1去掉试一下。
 
用TStoredProc使用存储过程是会有你所说的那种问题,解决的方法有两种第一是使用
TQuery 直接执行Sql语句如
with query do Begin
close;
with Sql do Begin
clear;
add('Exec sp_yourProc param1,param2');
end;
execSql;
end;

如果你使用D5的话,可以用AdoStoredProc,调用sp没有这个问题.
 
你可以试试使用ODBC
我没有遇到上面的问题,不过我使用SQL7.0用的是
Query1.SQL.add('execute …………);
 
接受答案了.
 
后退
顶部