Delphi 中如何附加一个SQL sever的 数据库 ? 比方说,我已经有一个sql server的数据库文件:test_data.mdf 及 test_log.ldf 在程序中如何用代码实现附加到SQL server中,而不是用企业管理器? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 调用系统存储过程,并注意文件路径sp_attach_db 'test', 'test_data.mdf ', 'test_log.ldf' sp_attach_db将数据库附加到服务器。语法sp_attach_db [ @dbname = ] 'dbname' , [ @filename1 = ] 'filename_n' [ ,...16 ]参数[@dbname =] 'dbname'要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。 [@filename1 =] 'filename_n'数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。返回代码值0(成功)或 1(失败)示例下面的示例将 pubs 中的两个文件附加到当前服务器。EXEC sp_attach_db @dbname = N'pubs', @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf', @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf' 我试了下procedure TForm1.SpeedButton1Click(Sender: TObject);begin EXEC sp_attach_db @dbname = N'SC', @filename1 = N'E:\SQL_pc\sc_data.mdf', @filename2 = N'E:\SQL_pc\sc_log.mdf'end;执行时出错提示: Undecllared identifier:"EXEC"请再帮看看? 用ADO控件提交这个存储过程调用语句,具体有几种方法1、ADOConnection.Execute2、ADOQuery.ExecSQL... 膜拜!procedure TForm1.SpeedButton1Click(Sender: TObject);vars:string;qry:TADOQuery;beginqry:=TADOQuery.Create(nil);qry.ConnectionString:='';//理解字符串 s:='EXEC sp_attach_db @dbname = N''SC'',' +'@filename1 = N''E:\SQL_pc\sc_data.mdf'',' +'@filename2 = N''E:\SQL_pc\sc_log.mdf''';qry.sql.Text:=s;qry.ExecSQL;freeandnil(qry);end; 谢谢老大了,我试了下,但执行的时候出这个错误 “Missing Connection。。” qry.ConnectionString:='';//填写连接数据库字符串 我这样写的,又说数据库不存,请帮看看那里写错了.....procedure TForm1.SpeedButton1Click(Sender: TObject);var s:string; qry:TADOQuery;begin try qry:=TADOQuery.Create(nil); qry.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;'+ 'Persist Security Info=False;Initial Catalog=SC;'+ 'Data Source=LZZYG-SERVER;Use Procedure for Prepare=1;'+ 'Auto Translate=True;Packet Size=4096;Workstation ID=MAIN;'+ 'Use Encryption for Data=False;'+ 'Tag with column collation when possible=False'; s:='EXEC sp_attach_db @dbname = N''SC'',' +'@filename1 = N''E:\SQL_pc\sc_data.mdf'',' +'@filename2 = N''E:\SQL_pc\sc_log.mdf'''; qry.sql.Text:=s; qry.ExecSQL; finally freeandnil(qry); end;end; cxTreeList问题请教 线程结束问题 哪位有ADO升级包的SN和KEY????就是为DELPHI5升级ADO的KEY?那位有高分相送!!! Delphi写的dll,Lotus Notes能用吗?VC能用吗? 用ADO不能把ORACLE的CLOB字段中的值得数据取出来 高手请进!!!——在线等待 关于adoquery多表操做的多行删除,在线等待…… 有关报表打印预览问题? 窗体共用 在ADOQUERY中,如何运行类似于TALBE中的LOCATE过程? webbrowse 与 ie 有什么区别 为什么同一个网址IE可以正常打开wb就不行? 各位Delphi大侠请指点一二
sp_attach_db 'test', 'test_data.mdf ', 'test_log.ldf'
将数据库附加到服务器。语法
sp_attach_db [ @dbname = ] 'dbname'
, [ @filename1 = ] 'filename_n' [ ,...16 ]参数
[@dbname =] 'dbname'要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。 [@filename1 =] 'filename_n'数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。返回代码值
0(成功)或 1(失败)示例
下面的示例将 pubs 中的两个文件附加到当前服务器。EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
EXEC sp_attach_db @dbname = N'SC',
@filename1 = N'E:\SQL_pc\sc_data.mdf',
@filename2 = N'E:\SQL_pc\sc_log.mdf'
end;执行时出错提示:
Undecllared identifier:"EXEC"请再帮看看?
1、ADOConnection.Execute
2、ADOQuery.ExecSQL
...
膜拜!
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
s:string;
qry:TADOQuery;
begin
qry:=TADOQuery.Create(nil);
qry.ConnectionString:='';//理解字符串
s:='EXEC sp_attach_db @dbname = N''SC'','
+'@filename1 = N''E:\SQL_pc\sc_data.mdf'','
+'@filename2 = N''E:\SQL_pc\sc_log.mdf''';
qry.sql.Text:=s;
qry.ExecSQL;
freeandnil(qry);
end;
谢谢老大了,我试了下,但执行的时候出这个错误 “Missing Connection。。”
我这样写的,又说数据库不存,请帮看看那里写错了.....procedure TForm1.SpeedButton1Click(Sender: TObject);
var
s:string;
qry:TADOQuery;
begin
try
qry:=TADOQuery.Create(nil);
qry.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;'+
'Persist Security Info=False;Initial Catalog=SC;'+
'Data Source=LZZYG-SERVER;Use Procedure for Prepare=1;'+
'Auto Translate=True;Packet Size=4096;Workstation ID=MAIN;'+
'Use Encryption for Data=False;'+
'Tag with column collation when possible=False';
s:='EXEC sp_attach_db @dbname = N''SC'','
+'@filename1 = N''E:\SQL_pc\sc_data.mdf'','
+'@filename2 = N''E:\SQL_pc\sc_log.mdf''';
qry.sql.Text:=s;
qry.ExecSQL;
finally
freeandnil(qry);
end;
end;