但我只能实现了创建数据库和表,但存储过程,还有视图等用户自己
定义的东西,怎么能在sql servr导出脚本之后,再用于去创建呢?希望
回答者详细的回答.
定义的东西,怎么能在sql servr导出脚本之后,再用于去创建呢?希望
回答者详细的回答.
解决方案 »
- 大虾们好:DATASET里用 FILTER ,想达到 name like '%sth%'的功能,如何填写 FILTER 呢? 能:name = '*sth*' ?
- delphi7如何安装nmftp组件
- 用QuickReport做报表,如何在每页都显示表头?
- 想对一个含有回车符号的字段进行加密,不知道有什么好的算法,请指教!谢谢!重谢!
- 如何调用win98的"查找文件"?
- 小妹子有一问题不明白:dll中能放QUERY等控件不?如果可以,如何把查询的结果传到程序中的dbgrid中?
- 关于在线程中的事务问题
- 关于ADOQUERY的一个缺德问题◎◎◎
- delphi 多条件过滤问题,急死人了~2天都没搞出来~
- 打印的问题??
- 各位大侠,救命啊!!!!俺吐血三升也没搞明白怎么回事!!!
- 我加分,请把1953122和1953175的问题答清楚
例如:
master.dbo.xp_cmdshell 'osql -u 用户名 -p 密码 -i c:\脚本.sql'
SmallHand:说的就是我所需要的。我还得试验成功之后,再结贴.很感谢SmallHand
是不是先 create database mydata
use mydata
master.dbo.xp_cmdshell 'osql -u 用户名 -p 密码 -i c:\脚本.sql'
-u 用户名 -p 密码 -i//是不是可选项
能说说SmallHand:的用法吗?
要求是用导出的SQL脚本,动态创建数据库和表、存储过程、视图等!
osql程序,命令行执行sql语句和文件
你将所有的语句放在脚本.sql然后照他的调用或者直接用shellexecute winexec等调用osql.exe程序,看看帮助就知
procedure TMainFrm.peCreateDataBase(sAccounts, sPassword: string);
var
sSqlScriptFilePath,sSqlScriptFilePath2,sCreateDBstr,sSqlScriptFilePath3,sTempStr: string;
begin
sCreateDBstr := Memo1.Lines.Text;
sSqlScriptFilePath := 'osql /U '+PChar(sAccounts)+' /P '+PChar(sPassword)+' /i '+GetCurrentDir+'\DataSource\CreateDB.sql ';
sSqlScriptFilePath2 := 'osql /U '+PChar(sAccounts)+' /P '+PChar(sPassword)+' /i '+GetCurrentDir+'\DataSource\BankData.sql ';
sSqlScriptFilePath3 := 'osql /U '+PChar(sAccounts)+' /P '+PChar(sPassword)+' /i '+GetCurrentDir+'\DataSource\UseDB.sql ';
Application.MessageBox('正在建立数据库','提示',MB_ICONINFORMATION);
try
//winexec(PChar(sSqlScriptFilePath),SW_HIDE);
with ADOQ_Temp do
begin
close;
sql.Clear;
sql.Add(sCreateDBstr); {执行建表SQL脚本}
ExecSQL;
end;
//winexec(PChar(sSqlScriptFilePath),SW_HIDE);
ProgressBar1.Position := 25;
Sleep(3000);
ProgressBar1.Position := 50;
//winexec(PChar(sSqlScriptFilePath3),SW_NORMAL);
Memo1.Lines.LoadFromFile(GetCurrentDir + '\DataSource\BankData.sql');
sTempStr := 'USE ' + Edit3.Text;
Memo1.Lines.Delete(0);
Memo1.Lines.Insert(0,sTempStr);
Memo1.Lines.Delete(1);
Memo1.Lines.Insert(1,'GO');
Memo1.Lines.SaveToFile(GetCurrentDir + '\DataSource\BankData.sql');
ProgressBar1.Position := 75;
winexec(PChar(sSqlScriptFilePath2),SW_HIDE);
Application.MessageBox('数据库建立完毕','提示',MB_ICONINFORMATION);
BitBtn2.Enabled := True;
except
BitBtn1.Enabled := True;
Application.MessageBox('数据库建立失败,请重新执行操作!','提示',MB_ICONINFORMATION);
end;
end;