Mel programma che ho in costruzione ho definito nella unit FrmMain alcune costanti e variabili globali:
unit FrmMain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, DB, Forms, Controls, Graphics, Dialogs, Menus, ExtCtrls,
fileutil, ZConnection, ZDataset, Frm2, Frm5,
ZDbcIntfs; // necezzario per accedere ai componenti "IZ" contenuti nel pacchetto zdbc.lpk;
type
{ TForm1 }
TForm1 = class(TForm)
DataSource1: TDataSource;
Image1: TImage;
MainMenu1: TMainMenu;
Menu1: TMenuItem;
...
Menu2225: TMenuItem;
ZConnection1: TZConnection;
ZQuery1: TZQuery;
procedure FormCreate(Sender: TObject);
...
procedure Menu2225Click(Sender: TObject);
private
public
end;
const
CurrentProtocol = 'sqlite';
var
Form1: TForm1;
dbCopia: String = '/media/dirdati/dativari/contabfam/ContabFamdb(copia)';
dbOrig: String = '/media/dirdati/dativari/contabfam/ContabFamdb';
dbProve: String = '/media/dirdati/dativari/contabfam/ContabFamdb_prove';
dbCorr: String;
sql, striMia: String;
implementation
Tutte le variabili dichiarate nella sezione "Interface" sono, per quanto appreso, globali e, quindi , visibili in tutte le unit del progetto.
Nella unit "utilmiedb", la quale è richiamata fra le use della unit Frm5 faccio uso della variabile "dbCorr", :
unit Frm5; // Form5 - Tabelle Disordinate
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
utilmie, utilmiedb;
type
unit utilmiedb;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils,
ZConnection, ZDataset,
ZDbcIntfs; // necezzario per accedere ai componenti "IZ" contenuti nel pacchetto zdbc.lpk;
type
TstrOut = Integer;
function contElemTbX(nmTabDb: String): TstrOut;
implementation
function contElemTbX(nmTabDb: String): TstrOut;
const
CurrentProtocol = 'sqlite';
var
// --------------------- componenti "IZ" utilizzati e contenuti nel pacchetto zdbc.lpk; ---------------------
FConn: IZConnection;
stmt: IZStatement;
rs: IZResultSet;
// -----------------------------------------------------------------------------------------------------------
totRecQry: Integer;
dtPrec, sql, striMia: String;
begin
striMia:= DriverManager.ConstructURL(CurrentProtocol, '', dbCorr, '', '', 0, nil);
FConn:= DriverManager.GetConnection(striMia); // prepara l’accesso al DB, cercandolo
stmt:= FConn.CreateStatement; // eseguela Open del DB
//-----------
Nonostante io abbia la presunzione di avere osservato attentamente le indicazioni lette, ricevo, in compilazione, il seguente messaggio d'Errore:
utilmiedb.pas(35,61) Error: Identifier not found "dbCorr"
:o
Dove ho sbagliato?