MolliAdress - professionelle Adressverwaltung

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
Cybermonkey342
Beiträge: 109
Registriert: Sa 1. Mär 2008, 15:19
OS, Lazarus, FPC: Kubuntu 22.04 (FPC 3.2.2) / Win11 Pro (FPC 3.2.2) / macOS Ventura (FPC 3.2.2)
CPU-Target: x86/x64
Kontaktdaten:

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von Cybermonkey342 »

Die 64bit-Version lautet: ppcx64
Aber wenn die Module auch nur für 32bit vorkompiliert sind, dürfte das wohl wenig Sinn ergeben, das einzubauen ... :|
Mit besten Grüßen,
Cybermonkey

mollilinux

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von mollilinux »

Cybermonkey342 hat geschrieben:Aber wenn die Module auch nur für 32bit vorkompiliert sind, dürfte das wohl wenig Sinn ergeben, das einzubauen ...


Ich werde diese Funktion so einbauen, forerst als Prototyp. Gibt es soetwas wie Prozerssoremulation, mit der man Lazarus für 64-bit auf einer x86 Architektur kompilieren kann? Dann würde die Rechnung aufgehen. Ansonsten müssen die 64-Bit manuell kompilieren. Aber ich will eine 64-Bit kompilation auf jeden Fall NICHT ausschliessen.

Ausserdem gibt es eine neue Struktur von MolliAdress: MolliAdress für GTK+ (Standard) und für QT (Für KDE Anwender). Auch MolliSQL Edit kann mit dem Makefile für GTK und QT kompiliert werden. Trozdem es wenig sinn macht, finde ich, das gehört einfach dazu. Was haltet ihr davon?

Die QT Version von MolliAdress arbeitet anders als die GTK, und sieht auch ein wenig anders aus. Ist aber kein Problem, Ihr werdets heute noch sehen, wenn ich die neue Version hochlade.

Hier das momentane Makefile für QT und GTK:

##############################################################################
# Dieses Makefile kompiliert MolliAdress vollständig. Mollitechnology
# Copyright (C) 2008 by Patrice G. Coni - 23. November 2008
##############################################################################

COMPILER= /usr/bin/ppc386
CFLAGS= -MObjFPC -Scgi -O1 -gl -WG -vewnhi -l
MODULES= -Fu./modules/bin/DBFLaz/i386-linux/ -Fu./modules/bin/SQLDBLaz/i386-linux/ -Fu./modules/bin/SDFLaz/i386-linux/ -Fu./modules/bin/lazreport/i386-linux/ -Fu./modules/bin/Printer4Lazarus/i386-linux/ -Fu./modules/bin/components/synedit/i386-linux/ -Fu./modules/bin/lazdbexport/i386-linux/ -Fu./modules/bin/RunTimeTypeInfoControls/i386-linux/ -Fu./modules/bin/components/ideintf/i386-linux/ -Fu./modules/bin/components/lcl/i386-linux/ -Fu./modules/bin/components/lcl/i386-linux/gtk2/ -Fu./modules/bin/components/packager/i386-linux/
MODULESQT= -Fu./modules/bin/DBFLaz/i386-linux/ -Fu./modules/bin/SQLDBLaz/i386-linux/ -Fu./modules/bin/SDFLaz/i386-linux/ -Fu./modules/bin/lazreport/i386-linux/ -Fu./modules/bin/Printer4Lazarus/i386-linux/ -Fu./modules/bin/components/synedit/i386-linux/ -Fu./modules/bin/lazdbexport/i386-linux/ -Fu./modules/bin/RunTimeTypeInfoControls/i386-linux/ -Fu./modules/bin/components/ideintf/i386-linux/ -Fu./modules/bin/components/lcl/i386-linux/ -Fu./modules/bin/components/lcl/i386-linux/qt/ -Fu./modules/bin/components/packager/i386-linux/
MODE= -dLCL -dLCLgtk2
MLADDR= ../molliadress

all:
######################################################################
# Kompilieren von MolliAdress in GTK und QT
######################################################################

$(COMPILER) $(CFLAGS) $(MODULES) -Fu. -o$(MLADDR) $(MODE) molliadress.lpr

$(COMPILER) $(CFLAGS) $(MODULESQT) -Fu. -o$(MLADDR)-qt -dLCL -dLCLqt molliadress.lpr

######################################################################
# MolliAdress erfolgreich kompiliert
######################################################################

qt:
######################################################################
# Kompilieren von MolliAdress nur in QT
######################################################################

$(COMPILER) $(CFLAGS) $(MODULESQT) -Fu. -o$(MLADDR)-qt -dLCL -dLCLqt molliadress.lpr

clean:
rm $(MLADDR)
rm ../mlsql
rm ../molliadress-qt

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von Christian »

Du hast das Programm doch in Lazarus gebastelt oder versteh ich was falsch damit brauch derjenige ders compilieren will eh immer lazarus weil sonst ja die lcl fehlt. Und damit ist deine ich brauch kein lazbuild teorie wieder gestorben.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mollilinux

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von mollilinux »

Die neue Version von MolliAdress steht auf dem SF Server zum Download bereit. Ihr könnt nun die neueste Version (20081130) herunterladen und das schön aufgeräumte Source-Verzeichnis modifizieren. Versucht mal MolliAdress mit euren Modulen zu kompilieren. Wenn es Probleme gibt, dann Postet bitte sofort. Nun ist MolliAdress für alle Architekturen wieder zugänglich. Es wurden auch Änderungen am Haptprogramm vorgenommen. Mal ne entscheidende Frage: Was würdet ihr an diesem Programm ändern?

Wie findet Ihr die neue Version? Was würdet Ihr noch dazuprogrammieren? Was fehlt?

Die Makefiles wurde nicht vollständig begraben, sie existieren noch, im Backup Verzeichnis, welches im Source-Verzeichnis liegt. Ausserdem wurde auch der Molli-Komprimierungsdienst total verbessert und läuft ohne Fehler.

Christian hat geschrieben: Du hast das Programm doch in Lazarus gebastelt oder versteh ich was falsch damit brauch derjenige ders compilieren will eh immer lazarus weil sonst ja die lcl fehlt. Und damit ist deine ich brauch kein lazbuild teorie wieder gestorben.


Ja, ich bin auch wider zur Vernunft gekommen. :)

Ich merkte dass es keinen Sinn mehr macht, es würde viel zu grosse Umstände machen. Doch diese Theorie ist noch nicht ganz gestorben. Ich überlege mir also eine neue Theorie, die MolliAdress auch GEöfnetes Lazarus kompiliert. Wenn Diese Theorie Praxis wird, dann wird Sie auf dem SF Server zu finden sein bei MolliAdress. Das währe dann der Molli-Kompilierungsdienst.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von Christian »

LAZBUILD compiliert dir doch den kram OHNE GEÖFFNETS LAZARUS. Dazu ists doch da was rede ich denn die ganze zeit.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mollilinux

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von mollilinux »

LAZBUILD compiliert dir doch den kram OHNE GEÖFFNETS LAZARUS. Dazu ists doch da was rede ich denn die ganze zeit.


Also, habe mich über lazbuild informiert. Hätte es lassen können (lol). Doch ich überlege mir eine Struktur dass lazbuild automatisch ausführt und MolliAdress vollständig kompiliert. Arbeite mit Gentoo GNU Linux, habe Lazarus aus dem Portage kompiliert. Doch lazbuild ist scheint irgenwie nicht vorhanden zu sein. (Verstehe das ganze nicht so richtig). Muss man lazbuild noch dazu kompilieren?

------------------

Ausserdem habe ich gestern eine neue Beta Version (20090117) veröffentlicht. Die Version beinhaltet einiges an Verbesserungen im Source-Code. Habe viele nicht gebrauchte Blöcke gelöscht usw. Als nächstes steht das Kommentieren der einzelnen Blöcke an.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von af0815 »

mollilinux hat geschrieben:Ausserdem habe ich gestern eine neue Beta Version (20090117) veröffentlicht. Die Version beinhaltet einiges an Verbesserungen im Source-Code. Habe viele nicht gebrauchte Blöcke gelöscht usw. Als nächstes steht das Kommentieren der einzelnen Blöcke an.

Vielleicht mit den Tools von Lazarus/FPC machen (xml-Dateien). Siehe Verzeichnis doceditor den lazde. Dann kann man html und chm (und Latex) daraus direkt machen. Ist am Anfang nicht so leicht, kann man aber später gut mit fpdoc automatisieren.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mollilinux

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von mollilinux »

Hallo zusammen,

Habe nun seit längerem eine SQL Struktur im Kopf. Versuche sie umzusetzen aber habe einige Probleme, da es an meinem "Wissen" an SQL und deren Lazarus Programmierung mangelt. MolliAdress soll eine SQL Funktion erhalten, für solche die lieber eine SQL Datenbank haben möchten (MolliMyAdress); Muss am Anfang eine Verbindung zum SQL Server aufgebaut werden. Habe manuell einen neuen benutzer "myadress" und die Datenbank "myadress" mit der Tabelle Dazu "myadress" angelegt in MySQL. Das funktionierte gut. Nun will ich mit MolliAdress (MolliMyAdress) auf die Datenbank und Tabelle zugreifen, damit die Tabelle im DBGrid 2 angezeigt wird. (Wie üblich)

Die Verbindungseinstellungen wurde vorgenommen, aber wie schreibt man den Rest? Komme nicht mehr weiter.

Hier meine Struktur:
struct.png


Wenn man diesen Button betätigt:
vs009.png

Dann:

Verbindung aufbauen --> Datenbank laden --> Tabelle in DBGrid anzeigen

(Natürlicht wurden die nötigen Verbindungs und Standardeinstellungen vorgenommen, jetzt muss nur noch die Funktion geschrieben werden.)

Code: Alles auswählen

procedure TForm1.BitBtn45Click(Sender: TObject);
begin
 if not MySQLConnection1.Connected then
  MySQLConnection1.Connected := true;
 SqlQuery1 := TSQLQuery.Create(self);
 try
  SqlQuery1.SQL.Clear;
  SqlQuery1.DataBase := MySQLConnection1;
  SqlQuery1.Transaction := SQLTransaction1;
 finally
 SqlQuery1.free;
 QLQuery1.ParseSQL:=true;
 SQLQuery1.ReadOnly:=false;
 SQLQuery1.Open;
 SQLQuery1.UpdateMode:=upWhereChanged;
 SQLQuery1.ApplyUpdates;
 SQLTransaction1.Commit;
 SQLQuery1.Free
 end;
 Notebook1.Page[6].Show;
 StatusBar1.Panels[1].Text:='Verbindung hergestellt';
 Memo2.Lines.Add('Verbindung hergestellt;');
 SQLQuery1.Active:=True;
end;


das ist mein Halbwissen und es endete mit folgender Fehlermeldung:

vs010.png


Ich lade noch ein paar Bilder hoch, damit man sich eine bessre Struktur vorstellen kann:

Datenbankansicht:
vs011.png


Und Die datensatzansicht besteht noch aus DBGrids.

Mein Problem ist:

Wie stelle ich eine gute Verbindung her? Wie kann ich mit MySQL diese Funktionen anwenden? (Mit DBF kein problem, aber nun braucht auch noch SQL) Wie soll ich das anstellen? Auch die SingleCommand Funktion lässt sich nicht bewegen. Wenn ich einen befehl eingebe z.B show table myadress; dann erscheint die Fehlermeldung "Access Violation"? Wie soll das funktionieren, dass die Tabelle in der Datenbank myAdress automatisch in DBGrid angezeigt wird?

Könnt Ihr mir Helfen dies zu vervollständigen?

Ich brauche dringend Hilfe von euch. :shock:

grüsse mollilinux

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von af0815 »

mollilinux hat geschrieben:.....
Könnt Ihr mir Helfen dies zu vervollständigen?
Ich brauche dringend Hilfe von euch. :shock:
grüsse mollilinux

Schon mal die Beispiele in LazInfos angesehen ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mollilinux

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von mollilinux »

Schon mal die Beispiele in LazInfos angesehen ?


Ja, ich habe die Lazinfos (Beispielshandbücher), Datenbank und SQL Funktionen angeschaut. Komme aber nicht mehr weiter. habe auch eine Kleinigkeit beim genannten Block von dort. Aber es helfen mir noch nicht, da über meine Struktur nichts brauchbares zu finden ist. Habe das Datenbank Bespielshandbuch mehrmals durchgeblättert, aber nichts passendes gefunden.

Kann mir jemand helfen?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von af0815 »

mollilinux hat geschrieben:Kann mir jemand helfen?

Was willst du eigentlich abfragen ?

Du setzt für derzeit ja keine SQL-Statement in der Query ab. Was willst du abfragen ? Schaut normalerweise wie 'SELECT Feld1, Feld2, Feld3 FROM TabelleX WHERE FeldY = 15' aus.

Ausserdem machst du im 'finally' Block sofort ein Free von SQLQuery1 und nachher arbeitest du da munter weiter.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mollilinux

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von mollilinux »


Was willst du eigentlich abfragen ?


Ich will die myadress01 Tablle abfrage und ins Programm einlesen. Hat auch geklappt. Hatte vorher kurzen blackout :arrow:

Code: Alles auswählen

if not MySQLConnection1.Connected then
  begin
    MySQLConnection1.Connected := true;
  end;
  if not SQLQuery1.Active then SQLQuery1.Active := true;
  Memo2.Lines.Add('Verbindung hergestellt;');
  Notebook1.Page[6].Show;
  StatusBar1.Panels[1].Text:='Verbindung hergestellt';
  SQLQuery1.Active := true;
     DBEdit16.DataField:='Name';
     DBEdit18.DataField:='Vorname';
     DBEdit19.DataField:='Strasse';
     DBEdit20.DataField:='PLZ';
     DBEdit21.DataField:='Ort';
     DBEdit22.DataField:='Land';
     DBEdit23.DataField:='Homepage';
     DBEdit24.DataField:='Firma';
     DBEdit25.Datafield:='Telefon_Firma';
     DBEdit26.Datafield:='Telefon_Privat';
     DBEdit27.DataField:='Telefon_Privat_2';
     DBEdit28.DataField:='Telefon_Direkt';
     DBEdit29.DataField:='Internet_Telefon';
     DBEdit30.DataField:='Fax';
     DBEdit31.DataField:='EMail';
     DBEdit32.DataField:='Natel';
     DBEdit33.DataField:='Natel_2';
     DBMemo2.DataField:='Bemerkung';
     Memo2.Lines.Add(SQLQuery1.Fields[0].AsString);
     SQLQuery1.Next;
end;


Nun habe ich noch das Problem mit der Single Command Mode. [img]vs011.png[/img]

Wenn ich einen Befehl eingeben und bestätigen will erscheint eine Fehlermeldung: "Operation cannot be preformed on an active dataset.". Klar kann man nichts machen, man muss das Dataset deaktivieren. Aber wie? Habe SQLQuery1 Active auf false gesetzt und SQL Transaction1 auch deaktiviert. Doch dann kam die Fehlermeldung "Access violation". Klar, wenn keine Verbindung mehr besteht... Wie kann ich das machen, damit ich befehle eingeben kann ohne probleme?

Ausserdem wie kann ich die Aussage vom Programm (z.B wenn ich einen befehl eingegeben Habe, die Ausgabe vom programm) in Memo1 steuern?

Kann mir jemand helfen?


Der Befehl-Bestätigungs Button:

Code: Alles auswählen

procedure TForm1.Button5Click(Sender: TObject);
begin
  SQLQuery1.ParseSQL:=true;
  SQLQuery1.Active:=False;
  Memo2.Lines.Add(Edit8.Text);
  Datasource2.Enabled:=False; // Laufzeit unterdrücken
  // Befehlsmodues Ohne Datenbank Alles Deaktivieren
  // SQLQuery1.SQL.Add(Edit8.Text);
  SQLQuery1.SQL.Text:=Edit6.Text;
  SQLQuery1.ExecSQL;
  SQLQuery1.Free;
  Datasource2.Enabled:=True;
  SQLQuery1.Active:=true;
  SQLQuery1.ParseSQL:=false;
end;
Dateianhänge
vs011.png

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von af0815 »

mollilinux hat geschrieben: SQLQuery1.Free;
Datasource2.Enabled:=True;
SQLQuery1.Active:=true;

Schon hier beisst es sich. Ich kann nicht zuerst etwas freigeben und anschliessend verwenden.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mollilinux

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von mollilinux »

Schon hier beisst es sich. Ich kann nicht zuerst etwas freigeben und anschliessend verwenden.


Habe deine Zeilen aus meinem Source rausgenommen, vergebens. Aber es funktioniert. Habe die vom Lazarus Beispielshandbuch verwedet und noch dazuprogrammiert. Nun läufts wie gewünscht.


Doch da gibt es noch ein grösseres Problem:

Ich kann keine Eingabe per DBGRID oder DBEDIT speichern. Schreiben kann ich, sobald "SQLQUery1.Post" kommt, kommt eine Fehlermeldung:

"SQLQuery1: Operation not allowed, dataset "SQLQuery1" is not in an edit or insert state."

Ich werde nur halbwegs schlau aus der Meldung. Komme nicht mehr weiter.


Diese Funktion verbindet MyAdress mit MySQL. DBGrid und DBEdit's werden erfolgreich aktiviert und man kann schreiben. Nur Speichern kann man nicht (Fehlermeldung)

Code: Alles auswählen

begin
 SQLQuery1.SQL.Text:='SELECT * FROM myadress01; ';
 if not MySQLConnection1.Connected then
  begin
    MySQLConnection1.Connected := true;
  end;
  if not SQLQuery1.Active then SQLQuery1.Active := true;
  Memo2.Lines.Add('Verbindung hergestellt;');
  Notebook1.Page[5].Show;
  StatusBar1.Panels[1].Text:='MyAdress Online';
     DBEdit16.DataField:='Name';
     DBEdit18.DataField:='Vorname';
     DBEdit19.DataField:='Strasse';
     DBEdit20.DataField:='PLZ';
     DBEdit21.DataField:='Ort';
     DBEdit22.DataField:='Land';
     DBEdit23.DataField:='Homepage';
     DBEdit24.DataField:='Firma';
     DBEdit25.Datafield:='Telefon_Firma';
     DBEdit26.Datafield:='Telefon_Privat';
     DBEdit27.DataField:='Telefon_Privat_2';
     DBEdit28.DataField:='Telefon_Direkt';
     DBEdit29.DataField:='Internet_Telefon';
     DBEdit30.DataField:='Fax';
     DBEdit31.DataField:='EMail';
     DBEdit32.DataField:='Natel';
     DBEdit33.DataField:='Natel_2';
     DBMemo2.DataField:='Bemerkung';
     SQLQuery1.Next;
end;


habt Ihr eine Idee?

Könnt Ihr mir weiterhelfen?

Vielen Dank

Grüsse

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: MolliAdress - professionelle Adressverwaltung

Beitrag von af0815 »

mollilinux hat geschrieben:Habe deine Zeilen aus meinem Source rausgenommen, vergebens. Aber es funktioniert. Habe die vom Lazarus Beispielshandbuch verwedet und noch dazuprogrammiert. Nun läufts wie gewünscht.


Doch da gibt es noch ein grösseres Problem:

Ich kann keine Eingabe per DBGRID oder DBEDIT speichern. Schreiben kann ich, sobald "SQLQUery1.Post" kommt, kommt eine Fehlermeldung:

"SQLQuery1: Operation not allowed, dataset "SQLQuery1" is not in an edit or insert state."

Ich werde nur halbwegs schlau aus der Meldung. Komme nicht mehr weiter.
......
Könnt Ihr mir weiterhelfen?


probiere mal ein Beispiel aus den Lazarus Beispielbuch nehmen und es dort probieren und dann sagen wo du Probleme hast. Denn an Deinem Beispieltext hier, kann ich nicht wirklich viel nachvollziehen und meine Glaskugel ist momentan im Pfandhaus (Weltwirtschaftskrise).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten