自动创建数据库(DELPHI+SQL SERVER)
procedure TForm1.Btn_OKClick(Sender: TObject);
var sqlconn:string;
begin
Sqlconn:='Provider=SQLOLEDB.1;'+'password='+Edit_Password.Text
+';Persist Security Info=true;User ID='+Edit_Name.Text
+';Data Source='+Edit_Server.Text;
if Edit_Server.Text=EmptyStr then begin
showmessage('请输入SQL服务器的名称或者IP地址!');
Edit_Server.SetFocus;
exit;
end;
if Edit_Name.Text=EmptyStr then begin
ShowMessage('请输入登陆数据库的用户名!');
Edit_Name.SetFocus;
exit;
end; with ADO_Test do
begin
Close;
ConnectionString :=Sqlconn;
end;
Try
Try
Ado_Test.LoginPrompt:=false;
Ado_Test.Connected:=true;
Messagebox(Handle,'连接成功。','提示',MB_OK or MB_ICONINFORMATION);
Button2.Click;
except
Messagebox(Handle,Pchar('连接['+Edit_Server.Text+']失败!'),'警告',MB_OK or MB_ICONWARNING);
end;
Finally
Ado_Test.Connected:=false;
end;
end; procedure TForm1.Button2Click(Sender: TObject);
Var
memExec,s:TStringList;
I,J:integer;
strSql,sqlstr,sqlconnstr:string; begin
Sqlconnstr:='IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'''
+ 'ToolManage'''+ ') DROP DATABASE [ToolManage]';
//不使用路径选择用缺省的 sqlstr:='create database ToolManage ON (NAME = N'''+'ToolManage_Data'''
+', FILENAME = N'''+ExtractFilePath(Application.ExeName)+'data\ToolManage_Data.MDF'''
+ ', SIZE = 1, FILEGROWTH = 10%) LOG ON (NAME = N'''+'ToolManage_Log'''+', FILENAME = N'''
+ ExtractFilePath(Application.ExeName)+'data\ToolManage_Log.LDF'''
+ ', SIZE = 1, FILEGROWTH = 10%) COLLATE Chinese_PRC_CI_AS';
Try
// Ado_CreateSQL.SQL.Clear; //清除创建的ado的sql
// //建立数据库Edit_database
Ado_CreateSQL.Connection:=Ado_Test;
Ado_CreateSQL.Close;
Ado_CreateSQL.SQL.Add('use master');
Ado_CreateSQL.ExecSQL; //执行 Ado_CreateSQL.Close;
Ado_CreateSQL.SQL.Add(Sqlconnstr);
Ado_CreateSQL.ExecSQL; //执行 Ado_CreateSQL.Close;
Ado_CreateSQL.SQL.Add(sqlstr);
Ado_CreateSQL.ExecSQL; //执行 Ado_CreateSQL.Close;
Ado_CreateSQL.SQL.Add('use ToolManage');
Ado_CreateSQL.ExecSQL; //执行 memExec := TStringList.Create;
s := TStringList.Create;
try
memExec.LoadFromFile(ExtractFilePath(Application.ExeName) + '\data\sql.sql');
s.Clear;
for i := to memExec.Count - do
begin
if UpperCase(Trim(memExec.Strings[i])) <> '' then
begin
if UpperCase(Trim(memExec.Strings[i])) <> 'GO' then
s.Add(memExec.Strings[i])
else if UpperCase(Trim(memExec.Strings[i])) = 'GO' then
begin
try
strSql := s.Text;
with QryAll do
begin
Close;
SQL.Text := strSql;
ExecSQL;
end;
s.Clear;
except
s.Clear;
ShowMessage(strSql);
end;
end;
end;
end;
ShowMessage('创建 ToolManage 数据库成功!'); with adocommand1 do
try
screen.Cursor := crSqlWait;
try
Ado_Test.Connected := false; CommandTExt := 'use master';
execute;
CommandText := 'ALTER DATABASE ToolManage SET OFFLINE WITH ROLLBACK IMMEDIATE';
execute;
CommandText := 'restore DataBase ToolManage from disk='''
+ ExtractFilePath(Application.ExeName)+'backup\2008-6-5(nil).bak'''
+ ' with Replace';
execute;
CommandText := 'ALTER DATABASE ToolManage SET ONLINE WITH ROLLBACK IMMEDIATE';
execute;
CommandText:= 'Use ToolManage';
execute; Ado_Test.Connected := true;
CommandText :='Use ToolManage';
execute;
ShowMessage('初始化数据库成功!');
finally
screen.Cursor := crDefault;
end;
except
on e: exception do
ShowMessage('初始化数据库失败!原因是:' + e.Message);
end; DataM.UserName := Trim(Edit_Name.Text);
DataM.UserPassword := Trim(Edit_Password.Text);
DataM.Server := Trim(Edit_Server.Text);
Ado_Test.Connected :=false;
finally
memExec.Free;
s.Free;
end;
except
DataM.UserName := '';
DataM.UserPassword := '';
DataM.Server := '';
close;
Exit;
End;
close;
end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1:=nil;
Action := caFree;
end; procedure TForm1.FormShow(Sender: TObject);
begin
Edit_Server.Text := '127.0.0.1';
end;
自动创建数据库(DELPHI+SQL SERVER)的更多相关文章
- 批处理创建数据库(Sql Server)
ylbtech-Miscellaneos:批处理创建数据库(Sql Server) 1.A,资源(Resource) - 创建数据返回顶部 1.A.1,InstallDatabases.cmd - 编 ...
- 如何转换SQL Server 2008数据库到SQL Server 2005
背景介绍: 公司一套系统使用的是SQL SERVER 2008数据库,突然一天收到邮件,需要将这套系统部署到各个不同地方(海外)的工厂,需要在各个工厂部署该数据库,等我将准备工作做好,整理文档 ...
- sql2008 计划自动创建数据库分区【转】
本文转自:http://jingyan.baidu.com/article/6b97984d9a26ec1ca3b0bf77.html sql2008 计划自动创建数据库分区 固定增量的数据,自动创建 ...
- DataGear 变更部署数据库为SQL Server填坑指南(含转写后的SQL server代码及SQL server配置文件)
1. 引言 2. 配置数据库链接 3. 引入数据库驱动 4. 手动初始化数据库 5. 改写SQL 6. 其他 7. 参考 1. 引言 DataGear默认使用Derby数据库作为系统的元数据库,至于待 ...
- SQL语句创建数据库,SQL语句删除数据库,SQL语句创建表,SQL语句删除表,SQL语句添加约束,SQL语句删除约束
创建数据库: CREATE DATABASE Test --要创建的数据库名称 ON PRIMARY ( --数据库文件的具体描述 NAME='Test_data', --主数据文件的逻辑名称 FIL ...
- 在Windows Server 2008 R2 Server中,连接其他服务器的数据库遇到“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker ”
项目代码和数据库部署在不同的Windows Server 2008 R2 Server中,错误日志显示如下: "未启用当前数据库的 SQL Server Service Broker,因此查 ...
- 【数据库】 SQL SERVER 2012 实用新特性
[数据库] SQL SERVER 2012 实用新特性 官方链接 一. ALWAYS ON - 灾难恢复 二. 列存储索引 - 比非聚集索引效率高,但有索引表不允许修改数据(插入,更新,删除),用于读 ...
- SQL问题:未启用当前数据库的 SQL Server Service Broker
数据库分离后,附加回到数据库,然后在程序中打开调用数据库的页面,出现如下问题:“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持.如果希望使用通知,请为此数 ...
- C#备份及还原数据库的实现代码(粗略) // 利用C#还原数据库(SQL SERVER)备份文件到指定路径
C#数据库备份及还原 1.在用户的配置时,我们需要列出当前局域网内所有的数据库服务器,并且要列出指定服务器的所有数据库,实现代码如下: 取得数据库服务器列表: public ArrayList Get ...
随机推荐
- Java语言基础(10)
1 方法(三) 案例:Demo1 import java.util.Scanner; public class Demo1 { static int min(int num1,int num2){ i ...
- Java语言基础(7)
1 for循环 案例:Demo1 1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ? 1/1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ? 分子都是1,分母是 ...
- jpa @Query()参数设置,:冒号方式、?NO.问号方式、实体类对象参数设置
一.service层事务(update/delete) @Transactional(rollbackFor = Exception.class) 二.@Query()参数设置 ?x 和:XX不能混 ...
- 关于 python 一切皆对象的实际理解
1 关于type type 函数可以查看一个对象的类 type 类是一切类型的模版 In [2]: type(1) Out[2]: int In [3]: type(int) Out[3]: type ...
- java WebSocket HTML页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- MariaDB使用enum和set
1.enum 单选字符串数据类型,适合存储表单界面中的“单选值”. 设定enum的时候,需要给定“固定的几个选项”:存储的时候就只存储其中的一个值. 设定enum的格式: enum("选项1 ...
- itop4412编译内核时出现“recipe for target 'arch/arm/mach-exynos/cpu-exynos4.o' failed”的解决方法
依次执行如下命令 #su root 输入root用户密码 #cd #vim .bashrc 到达最底行,确保环境变量如下图所示 保存退出后,执行如下指令 #source .bashrc 重启Termi ...
- JAVA实现图片叠加效果
import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.awt.image.BufferedImage; imp ...
- BZOJ 2119: 股市的预测 (Hash / 后缀数组 + st表)
转博客大法好 自己画一画看一看,就会体会到这个设置关键点的强大之处了. CODE(sa) O(nlogn)→1436msO(nlogn)\to 1436msO(nlogn)→1436ms #inclu ...
- web文件系统
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...