此贴用来解决一些人提出的MS SQL SERVER方面的问题. (0分)

  • 主题发起人 主题发起人 唐太宗
  • 开始时间 开始时间

唐太宗

Unregistered / Unconfirmed
GUEST, unregistred user!
今天第一天来大富翁论坛,以前在CSDN,兄弟我会些MS SQL SERVER,
如果有需要帮助的人,可以在本贴提出问题,我来解答,也可以提高自己了.

//太简单的问题不要问我了.而且只回答与MSSQL有关的问题.
 
那就请大侠看看这个:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1268123
现在依然没有解决问题.
 
to 楼上:
你这样的问题,只能来多试试.
1.重装系统,装除了瑞星以外的软件,看系统是否正常.
2.检查你的机器旁边有没有什么干扰.
3.如果可能,拿台好点的机器做数据库服务器来试试.

客户端只有20台,很少的.
 
SQLSERVER2000据说'',""都可以用,为什么用""就出错
如:select * from 档案 where 姓名="张三" 就报错,必须是'张三'才行!
SET QUOTED_IDENTIFIER OFF 可以用"",但仅限于查询分析器中才能用,如视图就不能用,
怎样才能在Delphi中也能用呢!(Access下作的SQL查询语句才能不加更改的使用 )
 
如果你非要这样用的话,你用存储过程就行了,
存储过程中,你先set quoted_identifier off再执行SQL语句.
 
BDE+SQL Server的问题可以问吗?

这样:
在delphi的ide设计环境下,调试程序,程序中有用TStoredProc调用SQL Server上建好的
存储过程,运行过程中一切正常,没有什么问题,但是程序一退出,就会出错,弹出那个
CPU的观测窗,停了下来,也不知道是什么错误,因为根本没有错误返回,我反复调试,
发现只要程序调用了存储过程,退出时就会出现这个现象,不调用储存过程退出时就没事,
更怪的是,编译成exe后,离开delphi的调试环境运行,调用储存过程,关闭时没有错误,
是delphi的问题,还是SQL Server的问题?

其中DM是个TDataModule,Dbc是个TDataBase,SP_P1是个TStoredProc。
DM.Dbc.StartTransaction ; //开始事务
DM.SP_P1.StoredProcName :=SP_Add_User; //执行添加一个用户存储过程,SP_Add_User是字符串变量
DM.SP_P1.Prepare ;
DM.SP_P1.ParamByName('@UserName').AsString :=trim(Frm_NewUser.Edt_username.Text) ;
DM.SP_P1.ParamByName('@UserPwd').AsString :=Frm_NewUser.Edt_mm1.Text ;
DM.SP_P1.ExecProc ;
if DM.SP_P1.ParamByName('RETURN_VALUE').AsString ='0' then //如果存储过程执行正确
begin
new(GU); //申请组、用户结构
GU.NodeType :=piUser;
GU.ID := DM.SP_P1.ParamByName('@Serial').AsString; //得到由存储过程返回的Serial
for i := 0 to Frm_NewUser.LB_group.Items.Count -1 do
begin
if not AddUserToGroup(Frm_NewUser.LB_group.Items,GU.ID) then //保存隶属于组信息,如果出错
begin
DM.Dbc.Rollback ;
dispose(GU);
Application.MessageBox('在保存用户组信息时出错!','信息',MB_ICONINFORMATION);
exit;
end;
end;
FTN:=TV_groupuser.Items.AddObject(nil,Frm_NewUser.Edt_username.Text,GU);
FTN.ImageIndex := Img_user;
FTN.SelectedIndex :=Img_user;
DM.Dbc.Commit ;
end;
 
安装了SQLSERVER2000 后原来用ACCESS2000作数据库开发的程序报错,有没有什么好的
解决办法,我用的是ADO来存取数据,ADO不向下兼容吗!我只需要把一部分的程序移到SQL,
其它的最好是能继续使用!
Thank very much!
 
我看有可能是你的DELPHI自己的问题,与MSSQL无关.
 
我是李渊。
 
to 楼上:你的不是MSSQL问题,
 
请问在MSSQL中如何实现ACCESS所支持Transform交叉表功能。
 
唐大侠:我是二楼的.
我的瑞星是网络版的.服务器和客户机都装过,现在都卸载了.
重装系统(瑞星出外),服务器端,客户端都要吗?
谢先!
 
我想问的是:假如客户端没有安装SQL_SERVER的client工具,能不能通过ADO链接?
我的我用的是sql_server 2000,试验了一下,不装客户端,死活连不上,不管用IP还是服务器名称。
只要一装客户端,立马畅通无阻。以前看过帖子说不用客户端个也行,但我的不行。

客户端没有安装SQL_SERVER的client工具,能不能通过ADO链接??
请参加过玄武门战斗的哥们给个解答。多谢。
另:mdac_typ是干什么用的?
 
to 白衣书生:不装mssql的客户端,只装ado的确是可以的,你的ADO版本是多少的.
最新版的是MDAC2.6,也就是ADO了.

to DZHZH2000,你可以先只重装win2000系统以及数据库,不装瑞星,试试,
如果还是不行,再重装一个客户端,你的情况只有多多实验才行.

 
Ado最新版本,俺安装了.net,最新版本为2.7
{获得Ado的版本}
uses Comobj;

function GetADOVersion: Double;
var
ADO: Variant;
begin
try
ADO := CreateOLEObject('adodb.connection');
Result := StrToFloat(ADO.Version);
ADO := Null;
except
Result := 0.0;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := FloatToStr(GetADOVersion);
end;
 
to 楼上:ado.27只不过是添加了一些ado.net需要的东东,
ado2.6才是真正的ado的最新版.
 
呵呵
太有意思了
 
用Delphi怎样控制SQL Server 2000的备份、恢复、新建及删除数据库?
 
to d_delphi:你这个问题通过执行SQL语句就行了,你用adodataset执行就行了.
 
能否传授一些比较简单的交叉表查询的方法???
 
后退
顶部