unit UnitDataBase;
{$mode ObjFPC}{$H+}
interface
uses
Unit1, Classes, SysUtils, Dialogs, SQLDB, SQLite3Conn;
Var
txtFile:String;
Function sqlDBError( msg: String): String;
Function openDB(dbName: string): boolean;
Function TblMakeUnits( ): Boolean;
Function TblMakeInverters(): Boolean;
Function TblMakeDays(): Boolean;
Function TblMakeTimes(): Boolean;
Function tblDataAddUnits(Const txtFile:String; Out icount:int32) : boolean;
Function tblDataAddInverters(Const txtFile:String; Out icount:int32) : boolean;
Function tblDataAddIDays(Const txtFile:String; Out icount:int32) : boolean;
function DoNullStr (InStr:String ): String;
Function GetColAndUnit(strCol:String; strUnit:String): Boolean;
Procedure closeDB;
implementation
Var
sqlite3: TSQLite3Connection;
dbTrans: TSQLTransaction;
dbQuery: TSQLQuery;
slNames: TStringList;
quit: boolean = false;
Function sqlDBError( msg: String): String;
begin
//Error message reformatting
result:= 'ERROR: ' + StringReplace(msg, 'TSQLite3Connection : ','',[]);
end;
Function openDB(dbName: string): boolean;
begin
// create components
sqlite3 := TSQLite3Connection.Create(nil);
dbTrans := TSQLTransaction.Create(nil);
dbQuery := TSQLQuery.Create(nil);
slNames := TStringList.Create;
// setup components
sqlite3.Transaction := dbTrans;
dbTrans.Database := sqlite3;
dbQuery.Transaction := dbTrans;
dbQuery.Database := sqlite3;
slNames.CaseSensitive := false;
// setup db
sqlite3.DatabaseName := dbName;
sqlite3.HostName := 'localhost';
sqlite3.CharSet := 'UTF8';
// open db
//WriteLn(dbName);
if FileExists(dbName) then
try
sqlite3.Open;
result := sqlite3.Connected;
except
on E: Exception do
begin
sqlite3.Close;
writeln(sqlDBError(E.Message));
end;
end
else
begin
result := false;
writeln('Database file "',dbName,'" is not found.');
{EndIf}end;
end;