DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: eyang11
今日帖子: 19
在线用户: 14
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 0809601 (endo) ★☆☆☆☆ -
普通会员
2004/3/10 9:37:52
标题:
关于动态创建控键和从INI文件读取配置信息的问题!急! 浏览:1777
加入我的收藏
楼主: 我动态创建了ADoConnection;AdoQuery,DataSource这三个控键,然后从INI文件读入配置文件信息,想通过INI文件连接数据库,以后只要更改INI文件就可以移植整个系统了,但体统总是出错,搞了一天都没解决。现给出程序段,望兄弟们支持:
还有在静态下连接是通过的。
unit U_Public;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids,IniFiles;

type
  TForm1 = class(TForm)
    Button1: TButton;
    DBGrid1: TDBGrid;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
Var DBConnect,DataBaseName,UserName,PassWord:String;
    Filename,IP:String;
    Testini:TiniFile;
    ADoConnection_DB:TADoConnection;
    AdoQuery_DB:TAdoQuery;
    DataSource_DB:TDataSource;
begin
  ADOQuery_DB:=TADOQuery.Create(nil);
  Filename:=ExtractFilePath(paramstr(0))+'DB.ini';
  Testini:=TInifile.Create(filename);
  if Fileexists('DB.ini') then
  begin
    UserName:=Testini.ReadString('DBSet','UserName',');  //读取INI信息中的用户名
    DataBaseName:=Testini.ReadString('DBSet','DataBaseName','); //读取INI信息中的数据库名
    IP:=testini.ReadString('DBSet','IP','); //读取INI信息中的 IP
    //获取连接的字符串
    DBConnect:='Provider=SQLOLEDB.1;Password='+Password+';Persist Security Info=True';
    DBConnect:=DBConnect+';User ID='+UserName+';Initial Catalog='+DataBaseName+';Data Source='+IP;
    With ADOConnection_DB Do
      Begin
        ConnectionString:='Provider=SQLOLEDB.1;Password=Endo;Persist Security Info=True;User ID=Endo;Initial Catalog=Endo;Data Source=10.0.0.8';
        LoginPrompt:=False;
        Connected:=True;
      End;
     With Adoquery_DB Do
      Begin
        Connection:=ADoConnection_DB;
        Active:=True;
        Close;SQL.Clear;SQL.Add('Select * From Test');Open;
      End;
    DataSource_DB.DataSet:=Adoquery_DB;
  end;
end;

end.

INI配置文件信息:
//数据库设计
[DBSet]
ComputerName=Endo
DataBaseName=Endo
UserName=Endo
PassWord=Endo
IP=10.0.0.8

----------------------------------------------
-
作者:
男 0809601 (endo) ★☆☆☆☆ -
普通会员
2004/3/10 9:38:43
1楼: 我的QQ:18978970  愿在线等候您!
----------------------------------------------
-
作者:
男 minche (异杰) ★☆☆☆☆ -
盒子活跃会员
2004/3/10 9:59:21
2楼: 你的ADoConnection_DB好象没有创建啊
少了这一句话:
ADoConnection_DB:=TADoConnection.Create(nil);
----------------------------------------------
-和大家一起学习,一起进步!!!
作者:
男 0809601 (endo) ★☆☆☆☆ -
普通会员
2004/3/10 12:03:08
3楼: 问题已经解决了,兄弟可以加一下你的QQ嘛?
我的:18978970
----------------------------------------------
-
作者:
男 waterstone (waterstone) ★☆☆☆☆ -
盒子活跃会员
2004/3/10 12:03:58
3楼: 呵呵
人家FORM上就有呀!

----------------------------------------------
我来自农村广阔的田野我的每一个动作都很夸张http://waterstone.51r.com
作者:
男 minche (异杰) ★☆☆☆☆ -
盒子活跃会员
2004/3/10 12:09:40
4楼: qq:2768961
----------------------------------------------
-和大家一起学习,一起进步!!!
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行66.40625毫秒 RSS