All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
温故知新ASP.NET,2.0(C#)(4),-,Cache&SqlCacheDependency_[Asp.Net教程]
无论技术高低 利用HTML优化加快网页速度_[Html教程]
delphi类的多态性
php程序如何生成验证码图片_[PHP教程]
我眼中的Ajax_[AJAX教程]
C#中HelpProvider组件应用实例
PHP动态网页实现静态HTML技术的方法实现_php资料_编程技术
c#中类的封装、继承和多态
分清SQL,Server中易混淆的数据类型_[SQL,Server教程]
初学解惑:关于ASP.NET技术的学习顺序问题_.net资料_编程技术
Reading number is top 10 pictures
支持判处贩卖儿童者死刑
各种囧况!玩游戏最不喜欢出现的十件事
青春清纯美女大集合1
原子弹轰炸长崎的珍贵照片
每天进步一点点
这还能睡得着?
Plump, too plump!2
西班牙山村小景3
Li Zongrui hunting video screenshots1
Angie Chiu vijara myth2
Download software ranking
终极变速大师Speeder3.26
linux高级编程
豪门浪荡史
C++教程第四版
Tram sex maniac 2 (H) rar bag13
网页特效实例大全
Boxer's Top ten classic battle9
Proficient in JavaScript
The Bermuda triangle1
C++编程教程第三版
aaa published in(发表于) 2014/7/19 0:12:22 Edit(编辑)
Delphi管理sql server数据库和数据表

Delphi管理sql server数据库和数据表

Delphi管理sql server数据库和数据表

数据库和数据表

1.附加数据库

附加数据库主要用系统存储过程sp_attach_db将数据库添加到服务器上,在使用系统存储过程sp_attach_db时,要获取添加数据库.MDF和.DF文件的路径(包含文件名和扩展名),以及添加数据库的名称(该名称是任意的,但最好是MDF文件中的数据库名称)。

下面利用系统存储过程sp_attach_db将数据库添加到服务器上,如图19.16所示。

操作步骤如下:

(1)运行Dephi,在窗体中添加TADOConnection、TADOQuery、TOpenDiaog、TSpeedButton、TBitBtn、Tabe和TEdit组件。

(2)主要程序代码如下。

{Edit1中存放的是数据库名,Edit2中存放的是.MDF文件的路径及名称,Edit2中存放的是.DF文件的路径及名称}

ADOquery1.Cose;

ADOQuery1.SQ.Cear;

ADOQuery1.SQ.Add('EXEC sp_attach_db @dbname = N'+''''+Trim(Edit1.Text)

+''''+',@fiename1 = N'+''''+Trim(Edit2.Text)+''''+',@fiename2 = N'+''''

+Trim(Edit3.Text)+'''');

ADOQuery1.ExecSQ;

注意:在系统存储过程中的N只是一个占位符,在这里可以不加。

2.动态创建数据库

所有的数据库名称及信息都存储在系统数据库“master”中,要想创建数据库,首先要打开“master”数据库,并用CREATE DATABASE语句将所创建数据库的.DATA和.OG文件存储在同一目录下。

下面利用SQ语句CREATE DATABASE动态创建数据库,如图1所示。



图1 附加数据库



图2 动态创建数据库

操作步骤如下:

(1)运行Dephi,在窗体中添加TADOConnection、TADOQuery、TOpenDiaog、TSpeedButton、TBitBtn、Tabe和TEdit组件。

(2)主要程序代码如下:

with ADOQuery1 do

begin

cose;

SQ.Cear;

SQ.Add('USE master'); //打开系统数据库

SQ.Add('CREATE DATABASE '+Trim(Edit1.Text)); //创建数据库

SQ.Add('ON');

SQ.Add('(NAME='+Trim(Edit1.Text)+'_Data,FIENAME='+''''+Trim(Edit2.Text)+''''+','); //创建DATA文件

SQ.Add('SIZE=10,MAXSIZE=50,FIEGROWTH=5)');

SQ.Add('OG ON');

SQ.Add('(NAME='+''''+Trim(Edit1.Text)+'_OG'+''''+',FIENAME='+''''+Trim(Edit3.Text)+''''+','); //创建OG文件

SQ.Add('SIZE=5MB,MAXSIZE=25MB,FIEGROWTH=5MB)');

showmessage(SQ.Text);

ExecSQ;

end;

3.动态创建数据表

动态创建数据表的关键在于SQ语句CREATE TABE的应用和表中字段类型的设置,在SQ Server中int、datatime、bigint、foat、dou

be、image、money、rea等字段类型的长度是默认的,在设置表中的字段时,不可以对其长度进行设置,并在每个字段的后面用“,”分隔,最后一个字段不用。

本示例是在指定的数据库中动态创建数据表,运行程序后在窗体的“表名称”文本框中输入表名,在“字段列表”中输入字段及类型,并用“添加”按钮添加多个字段,单击“建表”按钮对数据表进行创建,如图3所示。



图3 动态创建数据表

操作步骤如下:

(1)运行Dephi,在窗体中添加TADOConnection、TADOQuery、TEdit、TComboBox、TButton和TistBox等组件。

(2)主要程序代码如下:

向TistBox组件中添加要创建数据表的字段段信息。

procedure TFrmCreateTB.SBtnInsCick(Sender: TObject);

begin

//判断字段类型的长度是否为默认值

if (CBXtype.Text = 'int') or(CBXtype.Text = 'DateTime') then

istBox1.Items.Add(Trim(EDfied.Text)+' '+CBXtype.Text)

ese

istBox1.Items.Add(Trim(EDfied.Text)+' '+CBXtype.Text+'('+EDength.Text+')');

end;

调用自定义过程createsq,并动态创建数据表。

procedure TFrmCreateTB.BtnCreateCick(Sender: TObject);

begin

With AQCreateTB do

begin

Cose;

Sq.Cear;

sq.Add('Create Tabe '+EdName.Text+' '); //用SQ语句Create Tabe创建数据表

createsq; //自定义过程,用于获取SQ语句形式的字段信息

Execsq;

end;

end;

自定义过程createsq用于获取数据表中的字段信息

procedure TFrmCreateTB.createsq;

begin

With AQCreateTB do //将TistBox组件中所保存的字段信息转换成SQ语句

begin

Sq.Add('(');

for i:=0 to istBox1.Items.Count-1 do

begin

if i <> istBox1.Items.Count-1 then

sq.Add(istBox1.Items.Strings[i]+',')

ese

sq.Add(istBox1.Items.Strings[i]);

end;

Sq.Add(')');

end;

end;



添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.