![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно создать TDataBase динамически?
Kolan © (2007-07-24 12:13:00)А то при запросе ругается Unknown database
А если кинуть базу на форму и указать её то все работает
MsGuns (2007-07-24 21:28:00) [1]Вообще-то можно "кинуть" TDataBase на форму, настроить ее, а в ране создавать динамически "по образу и подобию"
Kolan (2007-07-24 15:28:00) [2]> Loginov Dmitry © (24.07.07 13:50)
Угу, благодарю получилось
Loginov Dmitry (2007-07-24 13:50:00) [3]
> Как правильно создать TDataBase динамически?
Как-то так:
procedure TForm1.Button1Click(Sender: TObject);
begin
with TDatabase.Create(Application) do
try
DatabaseName := 'TIPA_ALIAS';
DriverName := 'STANDARD';
Params.Values['PATH'] := DBPath;
Connected := True;
finally
Free;
end;
end;
Плохиш (2007-07-24 12:32:00) [4]
> Kolan © (24.07.07 12:25) [3]
Что-то не заметно присвоения значений ни свойству AliasName, ни свойству DriverName.
Desdechado (2007-07-24 12:31:00) [5]If DatabaseName is the same as an existing Borland Database Engine (BDE) alias, then the AliasName and DriverName properties need not be set. If DatabaseName does not match an existing BDE alias, then either the application must also supply a valid alias in the AliasName property in addition to the DatabaseName, or it must supply the DriverNameand Params properties.
Kolan (2007-07-24 12:25:00) [6]> А как ты создаешь?
FDataBase := TDatabase.Create(nil);
FDataBase.DatabaseName := 'DB';
FDataBase.Params.Clear;
FDataBase.Params.Add('PATH='+GetSettingsManager.GetDBDir);
FDataBase.Params.Add('DEFAULT DRIVER=PARADOX');
FDataBase.Params.Add('ENABLE BCD=FALSE');
Использую как-то так:
var
Query: TQuery;
TempLPU: TCustomLPU;
begin
Result := nil;
Query := TQuery.Create(nil);
try
Query.DatabaseName :='DB234';//FDataBase.DatabaseName;
Query.SQL.Add('SELECT * FROM SLLPU ');
Query.Open;
if not Query.Eof then
begin
Result := TLPUList.Create;
Query.First;
while not Query.Eof do
begin
TempLPU := TCustomLPU.Create(Query.FieldByName('NMLPU').AsString,
lUnknown);
TempLPU.ID := Query.FieldByName('CDLPU').AsInteger;
Result.Add(TempLPU);
Query.Next;
end;
end;
finally
Query.Close;
Query.Free;
end;
end;
'DB234';//FDataBase.DatabaseName;
'DB234' лежит на форме с ней работает
Desdechado (2007-07-24 12:16:00) [7]А как ты создаешь?
Плохиш (2007-07-24 12:15:00) [8]
> Kolan © (24.07.07 12:13)
> А то при запросе ругается Unknown database
Ошибка в программе, строка 17.