ini文件的问题? 你可以做个ini文件,在ini文件中写个connstr连接字符串,在连接的时候从ini文件中读取出来你的connstr就可以了;这样你到客户安装,只需要改变connstr就可 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把user id这些东西写在INI中,然后读出来组合一个字符串,赋给connectstring Delphi中有操作INI文件的类,用一下就是。到帮助文档查一下。 function ReadIni(AppName, KeyName, Default: string): string;var FileName: string; AN, KN, Df, Re, FA: array[0..1024] of Char;begin FileName := ExtractFilePath(GetModulePath) + ininame; StrPLCopy(fa, fileName, length(fileName)); strPLCopy(AN, AppName, length(AppName)); strPLCOPY(KN, KeyName, length(KeyName)); strPLCopy(DF, Default, length(Default)); GetPrivateProfileString(AN, KN, Df, Re, 2048, FA);//看看这个api的帮助 result := strPas(Re);end;procedure WriteIni(AppName, KeyName, Val: string);var FileName: string; AN, KN, Va, FA: array[0..1024] of Char;begin FileName := ExtractFilePath(GetModulePath) + ininame; StrPLCopy(fa, FileName, length(fileName)); strPLCopy(AN, AppName, length(AppName)); strPLCOPY(KN, KeyName, length(KeyName)); strPLCopy(Va, Val, length(Val)); WritePrivateProfileString(AN, KN, Va, FA););//看看这个api的帮助end; const sConnection: WideString = 'Provider=SQLOLEDB.1;Persist Security Info=False;' + 'User ID=sa;Initial Catalog=%s;Data Source=%s;' + 'Use Procedure for Prepare=1;Auto Translate=True;' + 'Packet Size=4096;Workstation ID=%s;Use Encryption for Data=False;' + 'Tag with column collation when possible=False';uses IniFiles;procedure TForm1.FormCreate(Sender: TObject);var yIni: TIniFile; yPath: PChar; S1, S2, S3: string;begin yPath := PChar(ExtractFilePath(Application.ExeName) + 'xx.ini'); yIni := TIniFile.Create(yPath); try S1 := yIni.ReadString('From', 'TableName', '');//数据库 S2 := yIni.ReadString('From', 'AliasName', '');//SQL服务器 S3 := yIni.ReadString('From', 'WorkStation', '');//读取客户机名称 finally yIni.Free; end; SetDefaultConnection(S1, S2, S3);//try..exceptend;procedure TForm1.SetDefaultConnection(TableName, AliasName, WorkStation: string);begin ADOC.ConnectionString := Format(DefaultConnection, [TableName, AliasName, WorkStation]); //ADOC.GetTableNames(cbbDisplayTables.Items, False); //ADOQ1.Prepared := True;end; ADOC.ConnectionString := Format(sConnection, [TableName, AliasName, WorkStation]);ini文件格式:[From]TableName=xxAliasName=TRCWorkStation=TRC 发个cxgrid的filterControl控件汉化方法 多线程打开excel,中出现的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!! [急!急!急!明天结贴]关于打印的问题 TCHART控件使用的小问题 请高手帮我看一下 用listview显示数据库的内容,在增加和修改一个记录后,怎么能马上在listview中显示出来 一个关于服务器线程的问题? 调用窗口问题 各位同仁,请关注! 请帮帮我 刚参加完微软的.net技术研讨会(南京),得光盘一张,感觉没什么收获,但,散分! 50分求购如何将但精读了型的数字截成只有两位小数位数的数字。
var
FileName: string;
AN, KN, Df, Re, FA: array[0..1024] of Char;
begin
FileName := ExtractFilePath(GetModulePath) + ininame;
StrPLCopy(fa, fileName, length(fileName));
strPLCopy(AN, AppName, length(AppName));
strPLCOPY(KN, KeyName, length(KeyName));
strPLCopy(DF, Default, length(Default));
GetPrivateProfileString(AN, KN, Df, Re, 2048, FA);//看看这个api的帮助
result := strPas(Re);
end;procedure WriteIni(AppName, KeyName, Val: string);
var
FileName: string;
AN, KN, Va, FA: array[0..1024] of Char;
begin
FileName := ExtractFilePath(GetModulePath) + ininame;
StrPLCopy(fa, FileName, length(fileName));
strPLCopy(AN, AppName, length(AppName));
strPLCOPY(KN, KeyName, length(KeyName));
strPLCopy(Va, Val, length(Val));
WritePrivateProfileString(AN, KN, Va, FA););//看看这个api的帮助end;
'Provider=SQLOLEDB.1;Persist Security Info=False;' +
'User ID=sa;Initial Catalog=%s;Data Source=%s;' +
'Use Procedure for Prepare=1;Auto Translate=True;' +
'Packet Size=4096;Workstation ID=%s;Use Encryption for Data=False;' +
'Tag with column collation when possible=False';uses IniFiles;procedure TForm1.FormCreate(Sender: TObject);
var
yIni: TIniFile;
yPath: PChar;
S1, S2, S3: string;
begin
yPath := PChar(ExtractFilePath(Application.ExeName) + 'xx.ini');
yIni := TIniFile.Create(yPath);
try
S1 := yIni.ReadString('From', 'TableName', '');//数据库
S2 := yIni.ReadString('From', 'AliasName', '');//SQL服务器
S3 := yIni.ReadString('From', 'WorkStation', '');//读取客户机名称
finally
yIni.Free;
end;
SetDefaultConnection(S1, S2, S3);//try..except
end;procedure TForm1.SetDefaultConnection(TableName, AliasName, WorkStation: string);
begin
ADOC.ConnectionString := Format(DefaultConnection, [TableName, AliasName, WorkStation]);
//ADOC.GetTableNames(cbbDisplayTables.Items, False);
//ADOQ1.Prepared := True;
end;
TableName=xx
AliasName=TRC
WorkStation=TRC