如何在应用程序中创建SQL数据库 |
答題得分者是:malanlk
|
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
目前我已学会通过SQL数据库操作,将数据库拷贝到客户电脑上,现在我所要问的是:客户无需直接使用SQL数据库操作,在我的应用程序上就能够完成数据库的创建任务。我所想开发的软件界面如图:(不一定完全模仿,只是表达一下我的意思的)
所要实现的功能:用户双击运行我的软件,就出现如图界面,软件能自动查询到可用的SQL服务器(当然也可以手工填写名称)用户可设置连接用户名和密码,然后测试连接,成功后可以点下一步,将我软件目录下的数据库附加到当前的SQL数据库中。至此,我软件运行所要的数据库就成功的安装到了客户的电脑中了。
------
我的编程起步于ktop,我将永远支持ktop |
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
这个是我以前写的可以实现数据库附加功能!
你可以参考一下!
function TDBRestoreFrm.RestoreDB(strDBName, strFileName: string): boolean; var strSQL: string; begin Result := false; strSQL := 'EXEC sp_attach_db ''' strDBName ''',''' strFileName ''''; try ADOConnectionSQL.DefaultDatabase := 'master'; ADODataSetWho.Recordset := ADOConnectionSQL.Execute('sp_who'); ADODataSetWho.First; while not ADODataSetWho.Eof do begin if ADODataSetWho.FieldByName('dbname').AsString = strDBName then begin ADOConnectionSQL.DefaultDatabase := strDBName; MessageBox(Application.Handle, pchar('用户' ADODataSetWho.FieldByName('loginame').AsString '正在使用数据库' strDBName '!'), '恢复错误', MB_OK MB_ICONERROR); Exit; end; ADODataSetWho.Next; end; ADOConnectionSQL.Execute(strSQL); except MessageBox(Application.Handle, '无法附加数据库文件!', '恢复错误', MB_OK MB_ICONERROR); Exit; end; Result := true; end; procedure TDBRestoreFrm.Button1Click(Sender: TObject); begin if (Trim(DBBackup.Text) = '') or (Trim(DataBaseName.Text) = '') or (Trim(DBRestoreFile.Text) = '') then begin MessageBox(Handle, '数据库、附加文件、库备份路径信息必须填写!', '系统提示', MB_OK); Exit; end; ADOConnectionSQL.Close; ADOConnectionSQL.ConnectionString := 'Provider=SQLOLEDB.1;Password=''' Trim(Password.Text) ''';Persist Security Info=True;User ID=''' Trim(UserName.Text) ''';Initial Catalog=master;Data Source=''' Trim(ServerName.Text) ''''; try ADOConnectionSQL.Open; if ADOConnectionSQL.Connected then if RestoreDB(Trim(DataBaseName.Text), Trim(DBRestoreFile.Text)) then begin //保存连接配置 SaveConnstr(DBBackup.Text, 'Provider=SQLOLEDB.1;Password=''' Trim(Password.Text) ''';Persist Security Info=True;User ID=''' Trim(UserName.Text) ''';Initial Catalog=''' Trim(DataBaseName.Text) ''';Data Source=''' Trim(ServerName.Text) ''''); MessageBox(Handle, '数据库成功附加!', '系统提示', MB_OK); end; except on ex: Exception do raise Exception.Create('出错提示:' #13#10 ex.Message); end; end;风花雪月 e梦情缘 网络代号:wnhoo or sos_admin 网名:e梦缘 Mail:wnhoo@163.com |
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
|
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |