如果要做到像phpmyadmin那样把数据库结构和内容导出来备份的话,该怎样做,谢谢
解决方案 »
- 为什么程序在WINXPSP2下运行成功,但在WINXPSP3下运行就出错
- 关于统计 表 一个字段 中连续出现相同数据的一个算法
- 请教问题一个
- 有做過ado/mts/com+第9章例子的請進!
- 做了VPN,可以PING内网可访问本地共享,就是UDP协议无法通讯,如何解决
- 各位朋友帮忙来理解一些问题,用通俗的话来理解这些问题@@@@@@@@@@@@@@@@
- 为什么delphi6老是自动退出
- SOS,win2000下开发的窗口在98下都增大了
- 我用tdbgrid控件显示access数据库的备注类型字段时,显示内容为【demo】不知如何才能显示具体的内容?
- 关于LoadResource
- 备份和还原数据库
- 字符串问题,送分!
要控件,google搜了一个DAC for mysql的控件,里面有个tools控件说是可以backup数据库的,老兄做过吗。。或者有其它控件可以推荐一下吗,谢谢回 zdq801104(我很笨,但是我不傻!) :
谢谢你顶贴,不过你这样的回答只会浪费论坛资源
让我等了好久都没回音~~~
你如果用命令的话,可以用SELECT INTO OUTFILE
今天没有时间试了,我感觉就是这个了,
因为MYSQL是文件式的数据库文件,你也可以通过拷贝文件来进行数据库的备份
你可以到网上找一个MYSQL的中文手册那里边有怎样进行MYSQL的数据库备份,还有上边的那个命令可以用你取数据的控件来执行
只能帮这些了~~
FADOCommand: TADOCommand;
FOpenQuery: TADOQuery;
FConnection: TADOConnection;
初始化
FConnection := TADOConnection.Create(nil);
FConnection.LoginPrompt := False;
FConnection.CommandTimeout := 3600;
FConnection.ConnectionTimeout := 60; FADOCommand := TADOCommand.Create(nil);
FADOCommand.CommandTimeout := 3600;
FADOCommand.CommandType := cmdText;
FADOCommand.Connection := FConnection; FOpenQuery := TADOQuery.Create(nil);
FOpenQuery.Connection := FConnection;
备份
const
BackupStr = 'use master backup database [%s] to DISK=''%s'' with init';
begin
Result := GetConnected;
if not Result then Exit;
with FADOCommand do
begin
try
FADOCommand.CommandText := Format(BackupStr, [DBName(数据库名称), FileName(备份文件名称)]);
FADOCommand.Execute;
Result := True;
except
on E: Exception do
begin
FLastError := '数据库备份错误:' + E.Message;
Result := False;
end;
end;
end;恢复
var
LogicDBName, LogicLogName: string;//, FSQL
const
RestoreStr = 'Use master RESTORE database [%0:s] FROM DISK = ''%1:s'' '
+ ' with Replace, Move ''%2:s'' to ''%3:s%0:s_data.mdf'',move ''%4:s'' to '
+ ' ''%3:s%0:s_log.ldf''';
begin
//判断连接数
Result := CheckOtherConnected and GetLogicInfo(LogicDBName, LogicLogName);
if not Result then
begin
Result := False;
Exit;
end;
with FADOCommand do
begin
FADOCommand.CommandText := Format(RestoreStr, [DBName, FFileName,
LogicDBName, GetDBDataFilePath, LogicLogName]);
try
FADOCommand.Execute;
Result := True;
except
on E: Exception do
begin
FLastError := '数据恢复错误:' + E.Message;
Result := False;
end;
end;
end;
附:
function GetLogicInfo(var LogicDBName,
LogicLogName: string): Boolean;
begin
with FOpenQuery do
begin
try
Close;
SQL.Clear;
SQL.Add(Format('use master RESTORE FILELISTONLY FROM DISK =''%s''', [FFileName]));
Open;
First;
while not Eof do
begin
if FieldByName('Type').AsString = 'D' then
LogicDBName := FieldByName('LogicalName').AsString;
if FieldByName('Type').AsString = 'L' then
LogicLogName := FieldByName('LogicalName').AsString;
Next;
end;
Result := True;
except
on E: EOleException do
begin
FLastError := Format('数据恢复错误:找不到备份文件"%s"。'
+ #10#13'请确认文件是否存在。', [FFileName]);
Result := False;
end;
end;
end;
end;function GetDBDataFilePath: string;
begin
with FOpenQuery do
begin
try
Close;
SQL.Clear;
SQL.Text := 'select filename from master..sysdatabases where name = ''' + FConnectInfo.DB + '''';
Open;
Result := Fields[0].AsString;
if Result <> EmptyStr then
begin
if Length(ExtractFileDir(Result)) <> 3 then
Result := ExtractFileDir(Result) + '\'
else
Result := ExtractFileDir(Result)
end
except
on E: Exception do
FLastError := '得到系统路径错误:' + E.Message;
end;
end;
end;