Hi Evgeny,
Attached is a simple test case.
Client:
In unit Globals.pas you can set the connection-parameters for the DA-server
unit Globals;
interface
var
AppServerHost: string;
AppServerPort: string;
implementation
initialization
AppServerHost := '192.168.1.26';
AppServerPort := '8099';
end.
Server:
In unit fServerDataModule.pas you can set the parameters for the database-connection:
procedure TServerDataModule.ModuleCreate(Sender: TObject);
var
ConnectionStringTemplate, ConnectionString: string;
begin
// Start Server
AppServerProperties.DataBaseHost := '192.168.1.72';
AppServerProperties.DataBasePort := 5432;
AppServerProperties.DataBase := 'deve';
AppServerProperties.DataBaseUserID := 'aUserID';
AppServerProperties.DataBasePassword := 'apassword';
ConnectionStringTemplate := 'FireDAC?AuxDriver=PG;Server=%s;Database=%s;UserID=%s;Password=%s';
ConnectionString := Format(ConnectionStringTemplate,
[AppServerProperties.DataBaseHost,
AppServerProperties.DataBase,
AppServerProperties.DataBaseUserID,
AppServerProperties.DataBasePassword
]);
ConnectionManager.Connections[0].ConnectionString := ConnectionString;
Server.Active := true;
end;
Structure of used tables:
CREATE TABLE contacten (
contact_id VARCHAR(20) NOT NULL,
aanmaker_id VARCHAR(20) NOT NULL,
aanmaak_tijd TIMESTAMP WITHOUT TIME ZONE NOT NULL,
wijziger_id VARCHAR(20) NOT NULL,
wijzig_tijd TIMESTAMP WITHOUT TIME ZONE NOT NULL,
inactief VARCHAR(1) DEFAULT '0'::character varying NOT NULL,
contact_id_nieuw INTEGER,
aanspreektitel_cti VARCHAR(30) DEFAULT 'AANSPREEKTITELS'::character varying NOT NULL,
aanspreektitel_ci VARCHAR(30),
naam VARCHAR(45),
straat VARCHAR(200),
post_code VARCHAR(20),
gemeente VARCHAR(20),
land_code VARCHAR(20),
taal_code VARCHAR(20),
telefoonnr VARCHAR(20),
faxnr VARCHAR(25),
gsmnr VARCHAR(30),
email VARCHAR(80),
verantwoordelijke VARCHAR(20),
vertegenwoordiger_cti VARCHAR(30) DEFAULT 'VERTEGENWOORDIGERS'::character varying NOT NULL,
vertegenwoordiger_ci VARCHAR(20),
klantengroepering_cti VARCHAR(30) DEFAULT 'KLANTENGROEPERINGEN'::character varying NOT NULL,
klantengroepering_ci VARCHAR(20),
btw_nr VARCHAR(20),
pdt VARCHAR(20),
sluitingsdag_cti VARCHAR(30) DEFAULT 'SLUITINGSDAGEN'::character varying NOT NULL,
sluitingsdag_ci VARCHAR(20),
dag_moeilijk_leveren_cti VARCHAR(30) DEFAULT 'SLUITINGSDAGEN'::character varying NOT NULL,
dag_moeilijk_leveren_ci VARCHAR(20),
leverfrequentie_cti VARCHAR(30) DEFAULT 'KLANTFREQUENTIES'::character varying NOT NULL,
leverfrequentie_ci VARCHAR(20),
bezoek_frequentie_cti VARCHAR(30) DEFAULT 'KLANTFREQUENTIES'::character varying NOT NULL,
bezoek_frequentie_ci VARCHAR(20),
depannage_vers VARCHAR(20),
bezoekdag_cti VARCHAR(30) DEFAULT 'BEZOEKDAGEN'::character varying NOT NULL,
bezoekdag_ci VARCHAR(20),
bezoek_tour VARCHAR(20),
bezoek_volgnummer_tour VARCHAR(20),
type_levering_cti VARCHAR(30) DEFAULT 'LEVERINGSTYPES'::character varying NOT NULL,
type_levering_ci VARCHAR(20),
vorige_klantengroepering_cti VARCHAR(30) DEFAULT 'KLANTENGROEPERINGEN'::character varying NOT NULL,
vorige_klantengroepering_ci VARCHAR(20),
klantnr_voorganger VARCHAR(20),
verbruikersprijs_cti VARCHAR(30) DEFAULT 'VERBRUIKERSPRIJZEN'::character varying NOT NULL,
verbruikersprijs_ci VARCHAR(20),
top200_top600_cti VARCHAR(30) DEFAULT 'TOP200_TOP600'::character varying NOT NULL,
top200_top600_ci VARCHAR(20),
oplegger_cti VARCHAR(30) DEFAULT 'OPLEGGERCODES'::character varying NOT NULL,
oplegger_ci VARCHAR(20),
latitude DOUBLE PRECISION DEFAULT 0,
longitude DOUBLE PRECISION DEFAULT 0,
klant_formule_cti VARCHAR(30) DEFAULT 'KLANTFORMULES'::character varying NOT NULL,
klant_formule_ci VARCHAR(20),
commerciele_naam VARCHAR(100),
gsmnr2 VARCHAR(40),
gsmnr3 VARCHAR(40),
email2 VARCHAR(80),
betaalwijze_cti VARCHAR(30) DEFAULT 'BETAALWIJZES'::character varying NOT NULL,
betaalwijze_ci VARCHAR(20),
rayonetiket_cti VARCHAR(30) DEFAULT 'RAYONETIKETTEN'::character varying NOT NULL,
rayonetiket_ci VARCHAR(20),
scanninggroep_cti VARCHAR(30) DEFAULT 'SCANNINGGROEPEN'::character varying NOT NULL,
scanninggroep_ci VARCHAR(20),
prijsklasse_cti VARCHAR(30) DEFAULT 'PRIJSKLASSES'::character varying NOT NULL,
prijsklasse_ci VARCHAR(20),
vaste_toeslag DOUBLE PRECISION,
aantal_mediascreens INTEGER,
formuleconsulent_cti VARCHAR(30) DEFAULT 'VERTEGENWOORDIGERS'::character varying NOT NULL,
formuleconsulent_ci VARCHAR(20),
saldo DOUBLE PRECISION,
blokkeringscode_cti VARCHAR(30) DEFAULT 'BLOKKERINGSCODES'::character varying NOT NULL,
blokkeringscode_ci VARCHAR(20),
doorfact_via_lambrechts VARCHAR(20),
lever_via_versplatform VARCHAR(20),
bestel_via_lambrechts VARCHAR(20),
vaste_toeslag_tot_datum TIMESTAMP(0) WITHOUT TIME ZONE,
var_toesl_percentage DOUBLE PRECISION,
var_toesl_begindatum TIMESTAMP(0) WITHOUT TIME ZONE,
var_toesl_barema_omzet DOUBLE PRECISION,
var_toesl_aantal_facturen INTEGER,
var_toesl_bijkomend_bedrag DOUBLE PRECISION,
eo_id VARCHAR(50),
f_id VARCHAR(50),
foto_onbemande_kassa VARCHAR(1) DEFAULT 'N'::character varying,
foto_zelfb_weegschaal VARCHAR(1) DEFAULT 'N'::character varying,
CONSTRAINT contacten_pk PRIMARY KEY(contact_id)
)
WITH (oids = false);
CREATE TABLE our_gebruikers (
gebruiker_id VARCHAR(20) NOT NULL,
aanmaker_id VARCHAR(20) NOT NULL,
aanmaak_tijd TIMESTAMP WITHOUT TIME ZONE NOT NULL,
wijziger_id VARCHAR(20) NOT NULL,
wijzig_tijd TIMESTAMP WITHOUT TIME ZONE NOT NULL,
inactief VARCHAR(1) DEFAULT '0'::character varying NOT NULL,
basis_firma_id VARCHAR(3) NOT NULL,
omschrijving VARCHAR(100) NOT NULL,
toegangstatus_cuid VARCHAR(51) NOT NULL,
geldigheidsduur_van_wachtwoord NUMERIC(38,0),
wachtwoord_vervallen VARCHAR(1),
aantal_ongeldige_aanmeldingen NUMERIC(38,0),
tijdstip_laatste_aanmelding TIMESTAMP WITHOUT TIME ZONE,
gebruiker_contact_id VARCHAR(20),
wachtwoord_verplicht VARCHAR(1) DEFAULT '1'::character varying,
default_doc_profiel NUMERIC(22,0),
default_afdeling VARCHAR(20),
expert_workflow_afhandeling VARCHAR(1) DEFAULT '0'::character varying,
intern_emailadres VARCHAR(100),
badgenummer VARCHAR(20),
max_ongeldige_aanmeldingen NUMERIC(38,0) DEFAULT 3 NOT NULL,
afdeling_cti VARCHAR(30) DEFAULT 'AFDELINGEN'::character varying NOT NULL,
afdeling_ci VARCHAR(20),
gsmnr VARCHAR(30),
ice_naam VARCHAR(100),
ice_gsmnr VARCHAR(30),
geboortedatum TIMESTAMP(0) WITHOUT TIME ZONE,
datum_indienst TIMESTAMP(0) WITHOUT TIME ZONE,
categorie_cti VARCHAR(30) DEFAULT 'GEBRUIKER_CATEGORIEEN'::character varying NOT NULL,
categorie_ci VARCHAR(20),
basis_adres_contact_id VARCHAR(20) DEFAULT 'C'::character varying NOT NULL,
wie_is_wie VARCHAR(1) DEFAULT 1 NOT NULL,
CONSTRAINT our_gebruikers_pk PRIMARY KEY(gebruiker_id)
)
WITH (oids = false);
CREATE INDEX our_gebruikers_i1 ON public.our_gebruikers
USING btree (basis_firma_id COLLATE pg_catalog."default", gebruiker_id COLLATE pg_catalog."default");
In \TestCase\Win32\Debug you will find the postgress-DLL’s
Met vriendelijke groeten, Salutations distinguées,
Mit freundlichen Grüßen, Kind regards, Z poważaniem,
Freddy Tutak
TpiCom bv
Mobile : +32 498 10 52 69
www.tpicom.eu