|
#1
|
|||
|
|||
работа с IniFile
у меня имеется код, который может работать с двумя БД. Для этого я использовал две ADOСonnection(1 и2) и ADOQuary(1и2), но надо использовать только один ADOСonnection1 и ADOQuary1. Мне сказали, что для этого нужен Inifile. то, что выделено цветом должно автоматически заполняться из инифайла. Помогите сделать(:
Вот исходный код и Inifile: Код HTML:
инифаил: [databases] bina=value Demo=192.168.70.234 Develop=192.168.70.432 |
#2
|
|||
|
|||
В ini-файле тебе надо хранить 2 connection string и можно так же сами запросы. Ну и просто читать их оттуда и перенастраивать ADOConnection и ADOQuery. Типа:
Код:
uses IniFiles; function TForm1.GetCount(AConnectionString, AQuery : String) : Integer; begin ADOQuery1.Active := False; ADOConnection1.Connected := False; Try ADOConection.ConnectionString := AConnectionString; ADOConnection.Connected := True; ADOQuery.SQL.Clear; ADOQuery.SQL.Add(AQuery); ADOQuery.Open; Result := ADOQuery.Fields[0].AsInteger; Finally If ADOQuery.Active Then ADOQuery.Close; ADOConnection.Connected := False; End; end; procedure TForm1.Button1Click(Sender : TObject); var Ini : TIniFile; AConn, ASQL : String; begin Ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')); AConn := Ini.ReadString('Connection1','ConnString',''); ASQL := Ini.ReadString('Connection1','Query',''); Cells[1,1] := GetCount(AConn,ASQL); AConn := Ini.ReadString('Connection2','ConnString',''); ASQL := Ini.ReadString('Connection2','Query',''); Cells[2,1] := GetCount(AConn,ASQL); Ini.Free; end; Ну и соотв. ini-файл Код:
[Connection1] ConnString=Здесь первая ConnectionString Query=select count(template_id) as f1 from os_eqm.devices where template_id <>0 [Connection2] ConnString=Здесь вторая ConnectionString Query=select count(def_monitoring_type)from devices_active where nvl(def_monitoring_type,0) <> 0 |
#3
|
|||
|
|||
Спасибо, но выскакивает ошибка:
invalid SQL statement Последний раз редактировалось AVOKADO, 07.07.2011 в 12:06. |
#4
|
|||
|
|||
Вот мой SQL
Код:
select (select count(template_id) from os_eqm.devices where template_id <>0)+ (select count(def_monitoring_type)from devices_active where nvl(def_monitoring_type,0) <> 0) from dual |