📄 ucreatedb.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "uCreateDB.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmCreateDB *frmCreateDB;
//---------------------------------------------------------------------------
__fastcall TfrmCreateDB::TfrmCreateDB(TComponent* Owner)
: TForm(Owner)
{
bIsConn=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmCreateDB::bbtnRefreshClick(TObject *Sender)
{
ADOConn->Close();
ADOConn->ConnectionString = strConnectString;
ADOConn->Open();
strSQL="select name from sysdatabases";
BUILD_SQL(qryPublic,strSQL);
qryPublic->Open();
qryPublic->First();
cbDBList->Clear();
while(!qryPublic->Eof)
{
cbDBList->Items->Add(qryPublic->FieldByName("name")->AsString);
qryPublic->Next();
}
cbDBList->ItemIndex=0;
}
//---------------------------------------------------------------------------
void __fastcall TfrmCreateDB::bbtnCheckConnClick(TObject *Sender)
{
strServer=Trim(edtServer->Text);
strDB=Trim(edtDefDB->Text);
strUser=Trim(edtUser->Text);
strPwd=Trim(edtPwd->Text);
if(strServer.IsEmpty()||strDB.IsEmpty()||strUser.IsEmpty())
ShowMessage("请将信息填写完整!");
bbtnSaveInfo->Enabled=true;
try
{
strConnectString="Provider=SQLOLEDB.1;Password="+strPwd+";Persist Security Info=True;User ID="+strUser+";Initial Catalog="+strDB+";Data Source="+strServer;
ADOConn->Close();
ADOConn->ConnectionString = strConnectString;
ADOConn->Open();
if(ADOConn->Connected==true)
{
ShowMessage("连接成功!");
AnsiString strIniFile=ExtractFileDir(Application->ExeName)+"\\Conn.ini";
ini=new TIniFile(strIniFile);
ini->WriteString("conn_info","Source",strServer);
ini->WriteString("conn_info","Catalog",strDB);
ini->WriteString("conn_info","ID",strUser);
ini->WriteString("conn_info","password",strPwd);
ShowMessage("数据库连接信息已保存到\n"+strIniFile);
bbtnSaveInfo->Enabled=false;
bbtnAddDB->Enabled=true;
bbtnRefresh->Enabled=true;
bbtnAddUser->Enabled=true;
bIsConn=true;
}
}
catch(Exception &e)
{
ShowMessage("连接失败!");
bbtnAddDB->Enabled=false;
bbtnRefresh->Enabled=false;
bbtnAddUser->Enabled=false;
bIsConn=false;
return;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmCreateDB::ckDefaultClick(TObject *Sender)
{
if(ckDefault->Checked==true)
{
edtServer->Text="127.0.0.1";
edtDefDB->Text="master";
edtUser->Text="sa";
edtPwd->Text="";
}
else
{
edtServer->Text="";
edtDefDB->Text="";
edtUser->Text="";
edtPwd->Text="";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmCreateDB::sbtnMDFClick(TObject *Sender)
{
AnsiString strDMFFile,strLDFFile,strTmp;
if(OpenDialog1->Execute())
strDMFFile=OpenDialog1->FileName;
else
return;
strTmp=strDMFFile;
strLDFFile=strTmp.Delete(strTmp.Length()-7,8)+"Log.LDF";
edtMDF->Text=strDMFFile;
edtLDF->Text=strLDFFile;
}
//---------------------------------------------------------------------------
void __fastcall TfrmCreateDB::bbtnAddDBClick(TObject *Sender)
{
if(bIsConn)
{
if(UpperCase(edtMDF->Text.SubString(edtMDF->Text.Length()-2,3))!="MDF")
{
ShowMessage("选择的数据文件不正确!");
return;
}
if(UpperCase(edtLDF->Text.SubString(edtLDF->Text.Length()-2,3))!="LDF")
{
ShowMessage("选择的日志文件不正确!");
return;
}
if(Trim(edtDBName->Text).IsEmpty())
{
ShowMessage("数据库名不能为空!");
return;
}
try
{
ADOConn->Close();
ADOConn->ConnectionString = strConnectString;
ADOConn->Open();
strSQL="use master EXEC sp_attach_db @dbname=:dbname,@filename1=:filename1,@filename2=:filename2";
BUILD_SQL(qryPublic,strSQL);
SET_PARM(qryPublic,"dbname",Trim(edtDBName->Text));
SET_PARM(qryPublic,"filename1",Trim(edtMDF->Text));
SET_PARM(qryPublic,"filename2",Trim(edtLDF->Text));
qryPublic->ExecSQL();
ShowMessage("附加成功!");
}
catch(...)
{
ShowMessage("附加失败!\n请确定连接到数据库,或已存在该数据库!");
}
}
else
{
ShowMessage("连接测试未成功,请确保连接成功再附加!");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmCreateDB::sbtnLDFClick(TObject *Sender)
{
AnsiString strLDFFile;
if(OpenDialog1->Execute())
{
strLDFFile=OpenDialog1->FileName;
edtLDF->Text=strLDFFile;
}
else
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmCreateDB::bbtnAddUserClick(TObject *Sender)
{
if(bIsConn)
{
if(Trim(edtAddUser->Text).IsEmpty())
{
ShowMessage("用户名不能为空!");
return;
}
try
{
ADOConn->Close();
ADOConn->ConnectionString = strConnectString;
ADOConn->Open();
strSQL="use master EXEC sp_addlogin @loginame=:loginame,@passwd=:passwd,@defdb=:defdb";
BUILD_SQL(qryPublic,strSQL);
SET_PARM(qryPublic,"loginame",Trim(edtAddUser->Text));
SET_PARM(qryPublic,"passwd",Trim(edtAddPwd->Text));
SET_PARM(qryPublic,"defdb",Trim(cbDBList->Text));
qryPublic->ExecSQL();
ShowMessage("添加成功!");
}
catch(...)
{
ShowMessage("添加失败!\n请确定连接到数据库,或已存在该用户!");
}
}
else
{
ShowMessage("连接测试未成功,请确保连接成功再添加!");
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -