delphi 连接SQLServer数据库

DELPHI 中的数据库开发有很多种类的,可以连接Access数据库,SQL Server 数据库,Orical 数据库,MySQL数据库等等,一般基于连接有两种方式,BDE和ADO两种方式,BDE一般就是楼上的方式,ADO也差不多的. 都是建立Connection --->Command(Query)执行SQL语句(查询,插入,删除,更新等操作).到后台的数据库操作核心部分都是SQL语句了,这点不同平台上的操作都是差不多的.之是连接模型和方式有点不同罢了!
///
delphi 通过odbc连接sql server

一、数据库的准备

打开“开始/程序/Microsoft SQL Server/企业管理器”展开“控制台根目录”的目录,在标有“数据库”的目录项上点击右键,再点“新建数据库”,如“TEST”。再右键点击表,新建表,如“TABLE1”。

二、设置ODBC数据源

打开“开始/设置/控制面板/管理工具/数据源(ODBC)”,在“User DSN”下,点Add,选择“SQL Server”,完成,输入数据源名称,如“TEST-ODBC”和SQL Server服务器名称,后面一直点“下一步”到最后一页,再点“Test data source..”检测设置是否正确。如果正确显示“tests completed successfully!”的信息。

三、设置数据引擎

打开“开始/程序/Borland Delphi7/BDE Administrator”,/在"Databases"页面下,可以看到,刚才设置的ODBC数据源“TEST-ODBC”,右键,选择“OPEN”,出现输入"user name"、"Password"的对话框,输入用户名Administrator及密码后点击“OK”使它有效。这时,如果连接正常,右侧的项目名称的字体变成粗体。注意:如要修改参数值,应先鼠标右键点击左侧的数据库名称,选择“Close”,在修改参数值后,用鼠标右键点击左侧的数据库名称,选择“Apply”保存,再选择“OPen”使新的参数值生效。

四、建立连接

在Delphi窗体上添加下列组件:Database、Query、Datasource、DBGrid。其中database是连接SQL Server数据库和Query的桥梁,Query完成具体的查询要求,DBGrid是为了显示数据库内容而添加的。

1、首先设置Database

双击database组件,出现database参数设置对话框,在alias name中选择或输入刚才bde administrator中新建的数据库名称,在本例中是test-odbc,在name中为它输入一个新的名称,如“test”,再点击“defaults”,如果不想以后频繁输入用户名和密码,可以在参数项password中写入密码并确定login paromp项没有选中。在connected属性中,设置为“true”,连接sql server.

2、设置dbgrid

将dbgrid1连接到datasource1,再把datasource1连接到query1,这个十分简单,不再重复。

3、设置query

在query1.databaename属性中,通过下拉列表,选择刚才在database设置中输入新的名称“test”,在SQL属性中输入“use test select * from table1”,再点击active属性为“true”

现在看看dbgrid的显示,sql server数据库里的数据已经传过来了,可以进行数据库开发了。
/
delphi 通过ADO连接sql server

在Delphi中以ADO方式登录SQL2000
--------------------------------------------------------------------------------
作者:不详  来源于:不详  发布时间:2005-3-20 0:43:32
Delphi是现今Windows平台上最好用的开发工具之一,而SQL Server2000又是微软最重要的数据库产品,功能强大,操作方便,两者结合便构成一个完美的Client-Server开发环境。结合微软的ADO数据引擎开发出来的数据库产品,速度快、界面优美而且效率高。SQL server拥有一套严密的登录认证机制,自动维护登录者列表,开发者可以直接利用这种安全机制,省去自己创建用户密码表的麻烦,那么如何在Delphi下登录到SQL Server数据库上呢?笔者结合实践,示范如下:

1.创建一个新的工程,命名为PrjApply,同时创建一个表单作为主窗口,命名为FormMain,可加入主菜单MainMenu;

2.创建一个数据模块,命名为DMApply,加入一个AdoConnection控件,命名为AdoConn,设LoginPrompt=false,保存为UnitDMApply.pas;

3.创建一个表单,命名为FrmEnter,设KeyPreview:=True,引用UnitDMApply单元,保存为EnterSys.pas。

4.在主表单FormMain的OnShow中加入: If not PWCheck then Application.Terminate; //认证失败则退出。

5.为测试程序,请在SQL Server中新建一个数据库Apply2000,并加入新用户,如“梁焯彬”,许可使用Apply2000数据库,角色为DB_Owner。

系统启动后,先弹出密码校验窗口,输入SQL Server中的合法用户名、SQL Server名、用户密码,按“进入”即进行口令认证,有三次机会,三次均错即退出系统。由于认证期间,系统未打开任何数据表,因此数据非常安全。通过全面使用ADO引擎,系统发布时非常简单,只有一个EXE文件,不必预装BDE相关文件也不必装SQL Server的前台工具,无论是局域网用户还是RAS远程用户都一视同仁。

本程序的技术核心在于:生成AdoConnection的连接字符串,赋给:AdoConn.ConnectionString,然后执行AdoConn.Open方法,同时捕捉错误,成功则Connected必定为True,失败则提示用户再试。注意,三个参数任一错误都会导致失败。

单元中在Implementation关键字前有一公用函数PWCheck,负责管理密码校验表单,其它单元可直接执行它。

unit EnterSys;

interface

usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons,UnitDMApply;

type

TFrmEnter = class(TForm)

……

……

private

{ Private declarations }

public

{ Public declarations }

end;

var

FrmEnter: TFrmEnter; TryTimes:byte;

Function PWCheck:boolean; //可由其它单元调用,密码校验

implementation

{$R *.DFM}

procedure TFrmEnter.ButtonTryClick(Sender: TObject);

var aPassWord,aOperName,aSqlDB,aSqlServer,Apply_ConnStr:string;

begin

Screen.Cursor:=crHourGlass;

aOperName:=EditOper.text;//操作员姓名

aSqlDB:='Apply2000';//尝试登录的数据库名

aSqlServer:=EditServer.Text;//服务器名

aPassWord:=TrimEditPassWord.Text);//密码串

Apply_ConnStr:='Provider=SQLOLEDB.1;Password='+aPassWord

+';Persist Security Info=True;User ID='+aOperName

+';Initial Catalog='+aSQLDB+';Data Source='+aSqlServer;

Try

TryTimes:=TryTimes+1;

dmApply.AdoConn.Close;

dmApply.AdoConn.ConnectionString:=Apply_Co

nnStr; //ADO连接字符串

dmApply.AdoConn.Open;

if dmApply.AdoConn.Connected then begin

ShowMessage('Apply2000登录成功');

ModalResult:=mrOK

end else ModalResult:=mrCancel;

except

if TryTimes<3 then begin

Beep;

Screen.Cursor:=crDefault;

Showmessage('请再试一次!还有'+Trim(IntToStr(3-TryTimes))+'次机会');

EditOper.SetFocus; //光标定位于第一编辑框

end else ModalResult:= mrCancel;//三次后退出

end;

end;

procedure TFrmEnter.FormCreate(Sender: TObject);

begin

Trytimes:=0; //尝试的次数

end;

procedure TFrmEnter.FormActivate(Sender: TObject);

begin

EditOper.SetFocus; //光标定位于第一编辑框

end;

procedure TFrmEnter.FormDestroy(Sender: TObject);

begin

ModalResult:= mrCancel;

end;

procedure TFrmEnter.FormKeyPress(Sender: TObject; var Key: Char);

begin

if key=#13 then begin //判断是否回车键

key:=#0;

perform(WM_NEXTDLGCTL,0,0); //移动到下一控件

end;

end;

procedure TFrmEnter.CboServerExit(Sender: TObject);

begin

EditPassWord.Text:='';

//清空密码框

end;

Function PWCheck:boolean;

var FrmEnter:TFrmEnter;

begin

FrmEnter:=TFrmEnter.Create(Application); //创建登录表单

if FrmEnter.ShowModal=mrOK then Result:=True

else Result:=false;

FrmEnter.free;//释放登录表单

end;

procedure TFrmEnter.ButtonExitClick(Sender: TObject);

begin

self.Close;

end;

end.

以上程序适用于Delphi5与SQL7或SQL2000。

该系统分5个模块,功能分别为: 一.人员档案的管理、物料档案管理 设计实现对企业人员基本情况的档案的输入、删除与修改,企业人员基本情况主要包括:人员代码、姓名、性别、出生日期、身份证号、籍贯、家庭住址、联系电话、其它情况等(对身份证号,电话号码合法性验证)。 物料档案包括物料代码、物料名称、规格型号、计量单位、库存数量、备注等字段。 1. 物料档案的增加、修改、删除程序,客户端输入时要求物料代码不为空,计量单位可以选择“件、套、公斤、吨、升、米、毫米、个”等,计量单位并可以输入其它单位名,库存数量默认为0。 2. 物料查询程序可以在通过输入框的文字进行模糊查询(物料代码、名称、规格中是否含有输入框的文字). 二. 简单物料进仓/出仓信息管理 企业物料进出仓的信息管理,物料进出仓的信息主要包括进出仓单号、进出仓日期、操作人员代码、备注、物料代码、进仓数量、出仓数量等 1. 企业仓库进出仓信息表可以用一个表,也可以用二个表(一对多关系),具体表设计的思路须在报告中描述。 2. 进仓程序与出仓程序可以合并,也可以分开做。其中操作人员用下拉框来选择;单号要自己编规则自动生成,单号产生规则在报告中说明;进出仓日期用日期控件;物料代码下拉框做选择;当物料出仓时判断出仓数量时候超过物料的库存数量,物料的库存数量在物料表中可以获得该物料的库存数量。进行进仓或出仓操作时通过调用存储过程来实现,存储过程将操作结果返回调用者,显示成功或失败的信息。 3. 进仓、出仓的存储过程可以合并或分开做,存储过程要判断物料是否存在,操作后物料库存数量是否不为负数;如果不满足条件显示,失败提示;如果满足条件,增加进出仓表记录一条,并根据进出仓物料的数量对物料表中库存数量进行修改,提交数据库操作,否则回滚。 4. 进出仓单查询程序,可以用进出仓日期起止条件,物料代码、操作人员、备注(用子串查询)来完成。 三、多物料进出仓信息管理 一般企业进行物料进出仓时,多在一个进出仓单号上同时对多种物料做同进或同出操作,通过程序实现多个物料在一个界面一个单号上同时实现进仓或出仓操作,如果不成功,必须全部回滚。 1. 多物料进仓出仓,可以在一个程序中完成,也可以分开编程,同一单号中进出仓单号、进出仓日期、操作人员必须完全相同,同一单号中不能进仓与出仓同时存在,通过调用存储过程完成进出仓操作。 2. 多物料进出仓存储过程,多物料进出仓单增加到表中,并修改多个物料的库存数量,失败就显示提示内容。 四、用户登录与权限设计 用户在这里就指操作人员,已经在人员档案中进行管理,通过设计用户登录和用户权限的管理,实现用户按权限访问资源,管理员按要求授予用户权限,登录程序安全稳定,设计用户菜单及程序调用。人员表中需要新增字段口令、用户权限。系统中每个操作人员都可以作为用户,当一个用户权限修改时,不会影响其他用户;可以对每个用户单独授予某个程序的执行权,也可以收回其执行权,而不影响其他用户的权限; 1. 用户登录程序,输入用户名和口令,判断正确后,按用户的权限,显示有权的菜单项,无权菜单项必须不可见或不可操作。 2. 用户授权程序。有授权权限的用户,可以指定某个用户获取某个程序执行权,或被禁止某个程序的执行权。 五、统计程序设计与报表打印 按物料统计进出仓流量,计算分析流动量最小的物料。按月份打印进出仓单表,打印进出仓单,按物料打印仓库账本。 1. 物料统计程序,统计各物料在指定时间内的进出仓数量总数,用图形显示。 2. 打印进出仓单程序,给定月份,将该月进出仓单全部按单号顺序打印出来。 3. 打印仓库账本程序,给定年份和物料,打印物料代码、名称、规格、计量单位、各日期的进仓、出仓和库存量。 资源包含: 1.系统源码 2.数据库及脚本 3.部分1详细说明报告 4.部分2详细说明报告 5.部分3详细说明报告 6.部分4详细说明报告 7.部分5详细说明报告 8.系统总说明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值