数据库还原问题!~(60分)

  • 主题发起人 主题发起人 idoudo
  • 开始时间 开始时间
I

idoudo

Unregistered / Unconfirmed
GUEST, unregistred user!
我要取得数据库文件的 逻辑名!!!以下是我的代码,但为何出错!~~~高人来啊~
if OpenDialog1.Execute then
try
ADOquery1.Close;
ADOquery1.SQL.Clear;
ADOquery1.sql.Add('RESTORE FILELISTONLY FROM disk='''+OpenDialog1.FileName+'''');
ADOquery1.ExecSQL;
ADOquery1.First;
edit1.Text:=ADOquery1.Fieldbyname('LogicalName').AsString;
ADOquery1.Next;
edit2.Text:=ADOquery1.Fieldbyname('LogicalName').AsString;
MessageBox(handle,'恭喜你:数据库还原成功!','祝贺你',MB_OK or MB_ICONINFORMATION);
exit;
except on e:exception do
Messagedlg( 'Sorry,数据库备份出错了!原因:'+e.Message,mtError,[mbok],0);
end;
可是出错 :"cannot perform this operation on a closed dataset" !~`
怎么回事/!~HELP
 
ADOquery1.ExecSQL;没有返回记录集
ADOquery1.First;没有记录集怎么first?
 
说的也是,但是我在SQL查询分析器里 执行的话 可以选出 它的 数据文件信息;
那怎么样才可以把它的信息放到 数据集里去啊~~[:(]
 
各位 帮帮忙啊~~~!!
还有个奇怪的事:
var i,j,a :integer;
v1,v2 :string;
begin
a:= ListBox1.Items.Count;
for i:=0 to (a-2) do
begin
v1:=ListBox1.Items;
for j:=i+1 to (a-1) do
begin
v2:= listbox1.Items[j];
if (v1=v2) then
begin
self.listbox1.Items.Delete(j);
a:=a-1;
end;
end;
end;
这段话哪出错了 我就奇怪了!~~
 
[?]吗的 怎么老没人啊
吗的 怎么老没人啊 吗的 怎么老没人啊 吗的 怎么老没人啊
人都死哪去了~~
 
[?]吗的 怎么老没人啊
吗的 怎么老没人啊 吗的 怎么老没人啊 吗的 怎么老没人啊
人都死哪去了~~
 
[?]吗的 怎么老没人啊
吗的 怎么老没人啊 吗的 怎么老没人啊 吗的 怎么老没人啊
人都死哪去了~~
 
[?]吗的 怎么老没人啊
吗的 怎么老没人啊 吗的 怎么老没人啊 吗的 怎么老没人啊
人都死哪去了~~
 
急啊 帮帮忙啊~~
 
草。你哪个******
怎么还没人啊~~多是猪啊
 
注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!
注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!注册用户 进来看了的 不留言的 全是猪一只!!!!!!!!!
 
封我的号吧~~郁闷死了~~花
封我的号吧~~郁闷死了~~草
封我的号吧~~郁闷死了~~树
封我的号吧~~郁闷死了~~木
 
你这耐心不够啊,第二个问题里面,你在删除的时候,循环用downto,如果用to的话,可能会导致后面的越界.
 
楼猪,比如我就不会嘛,留什么!
 
可以先EXECSQL,然后再OPEN一个数据集出来,当然SQL是要变的,
 
脾气这么不好!
ADOquery1.ExecSQL;
这句话不会有任何返回值,所以在执行 ADOquery1.First;
edit1.Text:=ADOquery1.Fieldbyname('LogicalName').AsString;
必然报错
你可以用ADOquery1.OpenSQL;代替ADOquery1.ExecSQL;试一下,不知道行不行
 
ADOquery1的连接问题需要考虑下
需要连接到master数据库
 
呵呵,不好意思 各位,那天我实在是太急了。
这个我已经弄好了,我是这样的:
先把'RESTORE FILELISTONLY 内容放到一个#临时表上;再从里面读取到ADOQUERY的数据集里;就OK了。
现在是 还原出问题了;
我把ADOCONNECTION 连接的数据库都关了、甚至把它都给 free了;
还原时还出问题:还是说 有数据在被使用中
 
结帖了 希望 大家 还来帮帮我!!3Q~~
 
分数 不多。伐好意思哦~
 
后退
顶部