如何设置TDataBase的params属性值连接SQL ?急。。。。。

时间:2020-12-27 05:31:10
如题: 如何设置TDataBase的params属性值连接SQL,而不需要在BDE管理器或ODBC管理器中设置别名? 以用如何ini保存及读取params的属性值????

5 个解决方案

#1


你不要设置别名怎么可以呢

#2


IniFile:=TIniFile.Create('d:\ucdos\rdfnt.ini');
IniFile.ReadSection(SectionComboBox.Text,IdentComboBox.Items);
IniFile.WriteString(SectionComboBox.Text,IdentComboBox.Text,IdentValueEdit.Text);
IniFile.Free; { 释放创建的对象 }

上面是简单的使用,看看下面的函数列表好了

  ⑴ Create()

  函数定义为: constructor Create(const FileName: string);

该函数建立TiniFile类的对象。参数FileName是要读写的初始化文件名。

若读写的文件在Windows的目录里(如system.ini文件),则可以直接写文件名而不必指定路径,否则就必须指定路径(如d:\ucdos\rdfnt.ini)。

如按以下规则在规定的目录中存在该文件,则打开该初始化文件;否则在规定的目录里创建该初始化文件。

  ⑵ ReadSections()

  过程定义为: procedure ReadSections(Strings: TStrings);

该过程将从所建立的TiniFile类的对象(即与之关联的初始化文件)中读取所有的节点名(即用[]括号括起的那部分,如rdfnt.ini文件中的[True Type fonts list])存入字符串列表中。参数Strings即为字符串列表的变量名。

  ⑶ ReadSectionValues()

  过程定义为: procedure ReadSectionValues(const Section: string; Strings: TStrings);

  该过程将参数Section的值所对应的节点(如rdfnt.ini文件中的[True Type fonts list])中的各个关键字(如ARIALBI.TTF)及其所含的值(如ARIALBI.TTF关键字值为67)读入参数Strings指明的字符串列表中。

  ⑷ ReadSection()

过程定义为: procedure ReadSection(const Section: string; Strings: TStrings);

该过程将参数Section的值所对应的节点中的各个关键字读入参数Strings指明的字符串列表中。与ReadSectionValues()不同的是它没有读取各个关键字的对应值。

  ⑸ ReadString()

  函数定义为: function ReadString(const Section, Ident, Default: string): string;

该函数返回以参数Section的值为节点名、参数Ident的值为关键字名所对应的关键字值(如[True Type fonts list]节中ARIALBI.TTF关键字的值为67)。当指定的节点或节内的关键字不存在时,则函数返回参数Default的缺省值。返回的值是一个字符串型数据。

当指定节点中关键字值的数据类型不是字符串时,则可用ReadInteger()成员函数读取一个整型值,用ReadBool()成员函数读取一个布尔值。

  ⑹ WriteString()

过程定义为: procedure WriteString(const Section, Ident, Value: string);

该过程将参数Section的值为节点名、参数Ident的值为关键字名的关键字值设置为参数Value的值。该过程设置的是字符串型数据。

当指定节点和关键字均存在时,则用Value的值替代原值;如指定节点不存在,则在关联的初始化文件中自动增加一个节点,该节点的值为参数Section的值,并在该节点下自动增加一个关键字,关键字名为参数Ident的值,该关键字对应的值为参数Value的值;若节点存在,但关键字不存在,则在该节点下自动增加一个关键字,关键字名为参数Ident的值,该关键字对应的值为参数Value的值。

若要设置整型值,可调用WriteInteger()成员函数;用WriteBool()成员函数设置布尔值。


上面是INI的使用第一个问题拜托你说详细一点,都还没搞清楚你要做什么?

#3


通过设置TDataBase的属性及Params参数应该可以吗?我听高手说的

#4


是可以的。如下:

1.放一个TDataBase到Form上(DataBase1)
2.设置DataBase1的DriverName 为MSSQL.这里注意, TDataBase的DriverName和AliasName是二个选一个的.用AliasName就必须在BDE中设置别名.而用DriverName就不必.
3.在form中选中DataBase1, 点右键,选择"load defualt parameters..."
4.现在可以编辑Params了,可以看到里边已经内容了:
DATABASE NAME=
SERVER NAME=MSS_SERVER
USER NAME=MYNAME
OPEN MODE=READ/WRITE
SCHEMA CACHE SIZE=8
BLOB EDIT LOGGING=
LANGDRIVER=
SQLQRYMODE=
SQLPASSTHRU MODE=SHARED AUTOCOMMIT
DATE MODE=0
SCHEMA CACHE TIME=-1
MAX QUERY TIME=300
MAX ROWS=-1
BATCH COUNT=200
ENABLE SCHEMA CACHE=FALSE
SCHEMA CACHE DIR=
HOST NAME=
APPLICATION NAME=
NATIONAL LANG NAME=
ENABLE BCD=FALSE
TDS PACKET SIZE=4096
BLOBS TO CACHE=64
BLOB SIZE=32

可以保留你想要的, 还有要补全的...
我的是这个样子:
DATABASE NAME=TestDB
SERVER NAME=192.168.1.1
USER NAME=ERP
PASSWORD=11223345566778
这几个参数是必须的了...
如果要用到其它参数你也可以写进去.

#5


哦,你说的是连接数据库的配置问题啊。我认为不需要设置参数啊。就把要配置的信息写到配置文件里,要连接数据库的时候把这些信息读取出来,直接拼成连接字符串不就行了吗?

#1


你不要设置别名怎么可以呢

#2


IniFile:=TIniFile.Create('d:\ucdos\rdfnt.ini');
IniFile.ReadSection(SectionComboBox.Text,IdentComboBox.Items);
IniFile.WriteString(SectionComboBox.Text,IdentComboBox.Text,IdentValueEdit.Text);
IniFile.Free; { 释放创建的对象 }

上面是简单的使用,看看下面的函数列表好了

  ⑴ Create()

  函数定义为: constructor Create(const FileName: string);

该函数建立TiniFile类的对象。参数FileName是要读写的初始化文件名。

若读写的文件在Windows的目录里(如system.ini文件),则可以直接写文件名而不必指定路径,否则就必须指定路径(如d:\ucdos\rdfnt.ini)。

如按以下规则在规定的目录中存在该文件,则打开该初始化文件;否则在规定的目录里创建该初始化文件。

  ⑵ ReadSections()

  过程定义为: procedure ReadSections(Strings: TStrings);

该过程将从所建立的TiniFile类的对象(即与之关联的初始化文件)中读取所有的节点名(即用[]括号括起的那部分,如rdfnt.ini文件中的[True Type fonts list])存入字符串列表中。参数Strings即为字符串列表的变量名。

  ⑶ ReadSectionValues()

  过程定义为: procedure ReadSectionValues(const Section: string; Strings: TStrings);

  该过程将参数Section的值所对应的节点(如rdfnt.ini文件中的[True Type fonts list])中的各个关键字(如ARIALBI.TTF)及其所含的值(如ARIALBI.TTF关键字值为67)读入参数Strings指明的字符串列表中。

  ⑷ ReadSection()

过程定义为: procedure ReadSection(const Section: string; Strings: TStrings);

该过程将参数Section的值所对应的节点中的各个关键字读入参数Strings指明的字符串列表中。与ReadSectionValues()不同的是它没有读取各个关键字的对应值。

  ⑸ ReadString()

  函数定义为: function ReadString(const Section, Ident, Default: string): string;

该函数返回以参数Section的值为节点名、参数Ident的值为关键字名所对应的关键字值(如[True Type fonts list]节中ARIALBI.TTF关键字的值为67)。当指定的节点或节内的关键字不存在时,则函数返回参数Default的缺省值。返回的值是一个字符串型数据。

当指定节点中关键字值的数据类型不是字符串时,则可用ReadInteger()成员函数读取一个整型值,用ReadBool()成员函数读取一个布尔值。

  ⑹ WriteString()

过程定义为: procedure WriteString(const Section, Ident, Value: string);

该过程将参数Section的值为节点名、参数Ident的值为关键字名的关键字值设置为参数Value的值。该过程设置的是字符串型数据。

当指定节点和关键字均存在时,则用Value的值替代原值;如指定节点不存在,则在关联的初始化文件中自动增加一个节点,该节点的值为参数Section的值,并在该节点下自动增加一个关键字,关键字名为参数Ident的值,该关键字对应的值为参数Value的值;若节点存在,但关键字不存在,则在该节点下自动增加一个关键字,关键字名为参数Ident的值,该关键字对应的值为参数Value的值。

若要设置整型值,可调用WriteInteger()成员函数;用WriteBool()成员函数设置布尔值。


上面是INI的使用第一个问题拜托你说详细一点,都还没搞清楚你要做什么?

#3


通过设置TDataBase的属性及Params参数应该可以吗?我听高手说的

#4


是可以的。如下:

1.放一个TDataBase到Form上(DataBase1)
2.设置DataBase1的DriverName 为MSSQL.这里注意, TDataBase的DriverName和AliasName是二个选一个的.用AliasName就必须在BDE中设置别名.而用DriverName就不必.
3.在form中选中DataBase1, 点右键,选择"load defualt parameters..."
4.现在可以编辑Params了,可以看到里边已经内容了:
DATABASE NAME=
SERVER NAME=MSS_SERVER
USER NAME=MYNAME
OPEN MODE=READ/WRITE
SCHEMA CACHE SIZE=8
BLOB EDIT LOGGING=
LANGDRIVER=
SQLQRYMODE=
SQLPASSTHRU MODE=SHARED AUTOCOMMIT
DATE MODE=0
SCHEMA CACHE TIME=-1
MAX QUERY TIME=300
MAX ROWS=-1
BATCH COUNT=200
ENABLE SCHEMA CACHE=FALSE
SCHEMA CACHE DIR=
HOST NAME=
APPLICATION NAME=
NATIONAL LANG NAME=
ENABLE BCD=FALSE
TDS PACKET SIZE=4096
BLOBS TO CACHE=64
BLOB SIZE=32

可以保留你想要的, 还有要补全的...
我的是这个样子:
DATABASE NAME=TestDB
SERVER NAME=192.168.1.1
USER NAME=ERP
PASSWORD=11223345566778
这几个参数是必须的了...
如果要用到其它参数你也可以写进去.

#5


哦,你说的是连接数据库的配置问题啊。我认为不需要设置参数啊。就把要配置的信息写到配置文件里,要连接数据库的时候把这些信息读取出来,直接拼成连接字符串不就行了吗?