Umstieg von DELPHI - ERROR identifier idents no member

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Cuci
Beiträge: 52
Registriert: Do 10. Dez 2015, 20:09
OS, Lazarus, FPC: LinuxMint 18.3 Cinnamon - Win7 in VM - Lazarus 1.8.0 fpc 3.0.4
CPU-Target: 64 bit
Wohnort: Wo es warm ist

Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von Cuci »

Hi, ich bekomme folgende Fehlermeldung:

identifier idents no member "DaMod1.Qy_mieterName"
identifier idents no member "DaMod1.Qy_mieterVorname"
usw, für alle Zeilen, in denen VALUE steht, komplette Prozedur nachstehend
in Delphi gabs da kein Problem

Code: Alles auswählen

procedure Tbody.DBNavigatorMieterPost;
var
    BM_Mieter  : TBookmark;
    nam, vorn  : String;
begin
    DaMod1.Qy_mieter.Open;
    DaMod1.Qy_mieter.Edit;
 
    nam :=  DaMod1.Qy_mieterName.Value;                 { Datenfeld NameVorname automatisch füllen }
    vorn := DaMod1.Qy_mieterVorname.Value;
    DaMod1.Qy_mieterNameVorname.Value := nam + vorn;
 
    DaMod1.Qy_mieterDatum.Value  :=  date;
    DaMod1.Qy_mieterGeschl.Value := DaMod1.Qy_anredeGeschlec.Value;
 
    BM_Mieter := DaMod1.Qy_mieter.GetBookmark;
 
    DaMod1.Qy_mieter.DisableControls;
 
    DaMod1.Qy_mieter.Post;
    DaMod1.Qy_mieter.Open;
 
    DaMod1.Qy_mieter.EnableControls;
end;

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von theo »

Habe den Code mal in den Highlighter gesetzt.

Bisschen schwierig zu antworten, wenn man nicht weiß was " DaMod1" sein soll, findest du nicht?

wp_xyz
Beiträge: 4885
Registriert: Fr 8. Apr 2011, 09:01

Re: Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von wp_xyz »

Ich nehme an, das DaMod1 ist ein Datamodule, und DaMod1.Qy_mietername ist das persistente Feld "Name" der Abfrage Qy_mieter. Du schreibst, dass dein Code bei Delphi kein Problem macht. Dann hast du es offenbar von Delphi aus nach Lazarus konvertiert. Bist du sicher, dass die persistenten Felder in Lazarus angekommen sind? Wenn nicht, versuche sie direkt in Lazarus nochmals zu erzeugen. Oder probiere es ohne persistente Felder:

Code: Alles auswählen

var
  Fname: TField;
  Fvorname: TField;
  ....
begin
  Fname := DaMod1.Qy_mieter.FieldByName('Name');
  Fvorname := DaMod1.Qy_mieter.FieldByName('Vorname');
  nam :=  Fname.AsString:
  vornam := Fvorname.AsString;
  ...

Cuci
Beiträge: 52
Registriert: Do 10. Dez 2015, 20:09
OS, Lazarus, FPC: LinuxMint 18.3 Cinnamon - Win7 in VM - Lazarus 1.8.0 fpc 3.0.4
CPU-Target: 64 bit
Wohnort: Wo es warm ist

Re: Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von Cuci »

Hallo wp_xyz, Deine Annahmen sind goldrichtig . . . Ich möchte allerdings nicht mehr Code als notwendig erzeugen (persistente Felder nochmals erzeugen).

Nachdem die Übernahme meines Programms in Lazarus zu viele Fehlermeldungen und Inkompatibilitäten erzeugte sah ich mich gezwungen, das Programm von Grund auf neu aufzubauen. Ich habe die vorhandene MySQL-DB ordentlich in das Datenmodul DaMod1 übernommen und sämtliche Tabellen mit Datenfeldern schon wieder sichtbar angelegt. Das funktioniert. Jetzt habe ich als nächsten Schritt den Ablauf beim Anlegen neuer Datensätze usw. in Angriff genommen und stolpere in diesen Error, der nur die Zeilen mit ....VALUE betrifft.

. . . ich habe deinen Code ausprobiert und es hat funktioniert. Das hat mich auf die Idee gebracht, mal in die Qy_mieter zu schauen. Doppelklick - und keine Felder zu sehen. Alle Felder reinkopiert und nun geht auch mein alter Code. Treffer. :D

Also mach ich den Thread mal zu. Merci beaucoup ! - Reimt sich sogar . . .

Cuci
Beiträge: 52
Registriert: Do 10. Dez 2015, 20:09
OS, Lazarus, FPC: LinuxMint 18.3 Cinnamon - Win7 in VM - Lazarus 1.8.0 fpc 3.0.4
CPU-Target: 64 bit
Wohnort: Wo es warm ist

Re: Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von Cuci »

. . . zu früh gefreut. Die veränderten Daten werden nicht gespeichert. Wenn ich in MySQL Daten ändere werden sie problemlos von Lazarus übernommen. Nur was im Programm geändert wird, wird nicht von der Datenbank übernommen. Ich speichere mit 'post'. Siehe Quelltext im Thread oben.
Wer weiß was dazu? :?:

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: Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von af0815 »

Siehe http://wiki.freepascal.org/Working_With_TSQLQuery Absatz Cached Updates.

Zitat:

Code: Alles auswählen

The TSQLQuery component caches all updates. That is, the updates are not sent immediately to the database, but are kept in memory till the ApplyUpdates method is called. At that point, the updates will be transformed to SQL update statements, and will be applied to the database. If you do not call ApplyUpdates, the database will not be updated with the local changes.


Auch http://wiki.freepascal.org/SqlDBHowto Absatz 'How to change data in a table?'
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Cuci
Beiträge: 52
Registriert: Do 10. Dez 2015, 20:09
OS, Lazarus, FPC: LinuxMint 18.3 Cinnamon - Win7 in VM - Lazarus 1.8.0 fpc 3.0.4
CPU-Target: 64 bit
Wohnort: Wo es warm ist

Re: Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von Cuci »

. . . und es funzt jetzt tatsächlich. Muchas gracias. :mrgreen:

Cuci
Beiträge: 52
Registriert: Do 10. Dez 2015, 20:09
OS, Lazarus, FPC: LinuxMint 18.3 Cinnamon - Win7 in VM - Lazarus 1.8.0 fpc 3.0.4
CPU-Target: 64 bit
Wohnort: Wo es warm ist

Re: Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von Cuci »

. . . ich hätte ja gerne ein neues Thema eröffnet, finde aber den richtigen Butten nicht mehr . . .

Ich will ZEOS installieren und komme mit der Beschreibung in der WIKI nicht klar:

Besorgen Sie sich einen SVN Client (esvn, kdesvn, etc.) ______________________ kdesvn habe ich installiert
Erstellen Sie ein Verzeichnis zeosdbo, gehen in das Verzeichnis und starten_______wo soll ich das Verzeichnis erstellen ?
svn checkout http://svn.code.sf.net/p/zeoslib/code-0 ... __________?

danke im Voraus !

u-boot
Beiträge: 306
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von u-boot »

Cuci hat geschrieben:Erstellen Sie ein Verzeichnis zeosdbo, gehen in das Verzeichnis und starten_______wo soll ich das Verzeichnis erstellen ?


ist nicht vorgeschrieben, somit also frei wählbar
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Cuci
Beiträge: 52
Registriert: Do 10. Dez 2015, 20:09
OS, Lazarus, FPC: LinuxMint 18.3 Cinnamon - Win7 in VM - Lazarus 1.8.0 fpc 3.0.4
CPU-Target: 64 bit
Wohnort: Wo es warm ist

Re: Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von Cuci »

Ich habe das Verzeichnis erstellt und den Checkout angestossen. Die URL scheint aber fehlerhaft zu sein.

http://svn.code.sf.net/p/zeoslib/code-0 ... es/testing


Cuci
Beiträge: 52
Registriert: Do 10. Dez 2015, 20:09
OS, Lazarus, FPC: LinuxMint 18.3 Cinnamon - Win7 in VM - Lazarus 1.8.0 fpc 3.0.4
CPU-Target: 64 bit
Wohnort: Wo es warm ist

Re: Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von Cuci »

. . . alles paletti, die ZEOS-Komponenten sind installiert.

Vielen Dank für die Unterstützung.

. . . aber leider gibt es noch ein Problem: Wenn ich eine ZQuery aktivieren will, verabschiedet sich Lazarus ohne Kommentar.
. . . und wenn ich es kompiliere, gibt es Ferlermeldungen:
Note: Duplicate unit "ZSybaseToken" in "zcore 7.1", orphaned ppu "/home/harald/Lazarus/FeVerm/lib/packages/lazarus/lib/x86_64-linux/ZSybaseToken.ppu"
Note: Duplicate unit "ZSybaseToken" in "zparsesql 7.1", ppu="/home/harald/Lazarus/FeVerm/lib/packages/lazarus/lib/x86_64-linux/ZSybaseToken.ppu", source="/home/harald/Lazarus/FeVerm/lib/src/parsesql/ZSybaseToken.pas"
Note: Duplicate unit "ZSybaseAnalyser" in "zcore 7.1", orphaned ppu "/home/harald/Lazarus/FeVerm/lib/packages/lazarus/lib/x86_64-linux/ZSybaseAnalyser.ppu"
Note: Duplicate unit "ZSybaseAnalyser" in "zparsesql 7.1", ppu="/home/harald/Lazarus/FeVerm/lib/packages/lazarus/lib/x86_64-linux/ZSybaseAnalyser.ppu", source="/home/harald/Lazarus/FeVerm/lib/src/parsesql/ZSybaseAnalyser.pas"

So geht es weiter. Sämtliche Units sind doppelt vorhanden.

Ich hatte die ZEOS-Komponenten schon mal gelöscht, aber bei der zweiten Installation passierte das gleiche.

Cuci
Beiträge: 52
Registriert: Do 10. Dez 2015, 20:09
OS, Lazarus, FPC: LinuxMint 18.3 Cinnamon - Win7 in VM - Lazarus 1.8.0 fpc 3.0.4
CPU-Target: 64 bit
Wohnort: Wo es warm ist

Re: Umstieg von DELPHI - ERROR identifier idents no member

Beitrag von Cuci »

Ich fand jetzt im ZEOSLIB-Forum folgende Lösung:

t seems this is changed Lazarus behaviour. On my system (Win7, FPC 2.6, Lazarus trunk) I changed the unit output path (-FU) to a separate path per package:
lib\zcore\$(TargetCPU)-$(TargetOS)
lib\zparsesql\$(TargetCPU)-$(TargetOS)
lib\zplain\$(TargetCPU)-$(TargetOS)
lib\zdbc\$(TargetCPU)-$(TargetOS)
lib\zcomponent\$(TargetCPU)-$(TargetOS)

This resolves the situation for me.

Ich fand auch schon im Lazarus, wo man Pfade einstellen kann, aber die Einstellung für ein spezielles Package habe ich nicht gefunden.

Antworten