Componentes.Terceros.RemObj.../internal/5.0.23.613/1/Data Abstract for Delphi/Source/uDASQLiteInterfaces.pas
david 2824855ea7 - Modificación del paquete RemObjects_Core_D10 para que sea un paquete de runtime/designtime (antes era designtime sólo)
- Recompilación en Delphi10 de todos los paquetes de RO para generar las DCU's en Lib\D10
- Recompilación en Delphi10 de todos los paquetes de DA para generar las DCU's en Lib\D10

git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@9 b6239004-a887-0f4b-9937-50029ccdca16
2007-09-10 14:06:19 +00:00

115 lines
3.5 KiB
ObjectPascal

unit uDASQLiteInterfaces;
{----------------------------------------------------------------------------}
{ Data Abstract Library - Core Library }
{ }
{ compiler: Delphi 6 and up, Kylix 3 and up }
{ platform: Win32, Linux }
{ }
{ (c)opyright RemObjects Software. all rights reserved. }
{ }
{ Using this code requires a valid license of the Data Abstract }
{ which can be obtained at http://www.remobjects.com. }
{----------------------------------------------------------------------------}
{$I DataAbstract.inc}
interface
uses
uDAInterfaces, uDAEngine, uROClasses;
type
{ IDASQLiteConnection
For identification purposes Implemented by all SQLite connections }
IDASQLiteConnection = interface(IDAConnection)
['{C6249278-7BBB-4E4F-849B-A9AA7C9ACD66}']
end;
TDASQLiteDriver = class(TDAEDriver)
protected
function GetDefaultConnectionType(const AuxDriver: string): string; override; safecall;
end;
TDASQLiteConnection = class(TDAEConnection, IDAFileBasedDatabase, IDASQLiteConnection)
protected
procedure DoGetTableNames(out List: IROStrings); override;
procedure DoGetStoredProcedureNames(out List: IROStrings); override;
procedure DoGetViewNames(out List: IROStrings); override;
//IDAFileBasedDatabase
function GetFileExtensions: IROStrings;
end;
function SQLite_GetFileExtensions: IROStrings;
procedure SQLite_GetObjectNames(Query: IDADataset;AList: IROStrings; AObjectType: TDAObjecttype);
const
SQLite_DriverType = 'SQLite';
implementation
uses
SysUtils;
function SQLite_GetFileExtensions: IROStrings;
begin
Result := TROStrings.Create;
result.Add('*.SQB;*.DB3;*.DB;*.DBB;SQLite Database (*.sqb,*.db3,*.db,*.dbb)');
result.Add('*.*;All files (*.*)');
end;
procedure SQLite_GetObjectNames(Query: IDADataset;AList: IROStrings; AObjectType: TDAObjecttype);
begin
try
case AObjectType of
dotTable: Query.SQL := 'SELECT name FROM sqlite_master WHERE type="table" ORDER BY name';
dotView: Query.SQL := 'SELECT name FROM sqlite_master WHERE type="view" ORDER BY name';
dotProcedure: Exit;
else
end;
Query.Open;
while not Query.EOF do begin
AList.Add(Trim(Query.Fields[0].AsString));
Query.Next;
end;
finally
Query:=nil;
end;
end;
{ TDASQLiteDriver }
function TDASQLiteDriver.GetDefaultConnectionType(
const AuxDriver: string): string;
begin
Result:= SQLite_DriverType;
end;
{ TDASQLiteConnection }
procedure TDASQLiteConnection.DoGetStoredProcedureNames(out List: IROStrings);
begin
inherited;
SQLite_GetObjectNames(GetDatasetClass.Create(Self),List,dotProcedure);
end;
procedure TDASQLiteConnection.DoGetTableNames(out List: IROStrings);
begin
inherited;
SQLite_GetObjectNames(GetDatasetClass.Create(Self),List,dotTable);
end;
procedure TDASQLiteConnection.DoGetViewNames(out List: IROStrings);
begin
inherited;
SQLite_GetObjectNames(GetDatasetClass.Create(Self),List,dotView);
end;
function TDASQLiteConnection.GetFileExtensions: IROStrings;
begin
Result:=SQLite_GetFileExtensions;
end;
end.