delphi 连接SQLServer数据库 收藏
DELPHI 中的数据库开发有很多种类的,可以连接Access数据库,SQL Server 数据库,Orical 数据库,MySQL数据库等等,一般基于连接有两种方式,BDE和ADO两种方式,BDE一般就是楼上的方式,ADO也差不多的. 都是建立Connection --->Command(Query)执行SQL语句(查询,插入,删除,更新等操作).到后台的数据库操作核心部分都是SQL语句了,这点不同平台上的操作都是差不多的.之是连接模型和方式有点不同罢了!
///////////////////////////////////////////////////////
delphi 通过odbc连接sql server
一、数据库的准备
sql2000数据库在哪个文件夹打开“开始/程序/Microsoft SQL Server/企业管理器”展开“控制台根目录”的目录,在标有“数据库”的目录项上点击右键,再点“新建数据库”,如“TEST”。再右键点击表,新建表,如“TABLE1”。
二、设置ODBC数据源
打开“开始/设置/控制面板/管理工具/数据源(ODBC)”,在“User DSN”下,点Add,选择“SQL Se
rver”,完成,输入数据源名称,如“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:=; //操作员姓名
  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。
本文来自CSDN博客,转载请标明出处:blog.csdn/Johnny_Lee/archive/2008/02/16/2099781.aspx

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。