DBF und MDX Fehler
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
DBF und MDX Fehler
Hi,
habe hier eine dbase Datenbank mit mdx (Fritz!Fax) möchte diese gern auslesen.
Die dbf kann ohne mdx geöffnet werden, mit mdx kommt die Fehlermeldung:
Index based on unknown field "LEFT"
In der MDX sieht man im editor folgendes "UPPER(LEFT(DATEI, 100))".
Also scheint es in TDBF den Befehl "LEFT" nicht zu geben.
Kann ich da einen "feature request" dafür machen?
Oder kann ich den Befehl und Funktion selber schreiben, wenn ja in welcher datei?
Test Projekt: https://ufile.io/s0vbm
Vielen Dank für eure Hilfe
Maik
habe hier eine dbase Datenbank mit mdx (Fritz!Fax) möchte diese gern auslesen.
Die dbf kann ohne mdx geöffnet werden, mit mdx kommt die Fehlermeldung:
Index based on unknown field "LEFT"
In der MDX sieht man im editor folgendes "UPPER(LEFT(DATEI, 100))".
Also scheint es in TDBF den Befehl "LEFT" nicht zu geben.
Kann ich da einen "feature request" dafür machen?
Oder kann ich den Befehl und Funktion selber schreiben, wenn ja in welcher datei?
Test Projekt: https://ufile.io/s0vbm
Vielen Dank für eure Hilfe
Maik
Zuletzt geändert von sstvmaster am Sa 12. Mai 2018, 21:42, insgesamt 2-mal geändert.
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: DBF und MDX Fehler
Warum ist diese Version von TDBF von hier: https://sourceforge.net/projects/tdbf/ nicht in Lazarus integiriert?
In dieser gibt es dieses LEFT?
Wer ist für DBFLaz verantworlich?
In dieser gibt es dieses LEFT?
Wer ist für DBFLaz verantworlich?
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
- af0815
- Lazarusforum e. V.
- Beiträge: 6767
- 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: DBF und MDX Fehler
Vieleichtweil es für Delphi und BCP deklariert ist.
Wen es dort vorhanden ist, so kannst du ja den Code nach FPC importieren und estesten,wenn es funktioniert, so kannst du sicher einen Patch einreichen.
Im Zeitaltervon sqlite und SQL haben alte Desktopdatenbanken einen niederen Stellenwert. Deshalb ist eine Erweiterung um das Feature, nurso, sicher nicht auf dem Radar der Entwickler.
Wer an der Software geschrieben hat, kann man in den Logs vom SVN nachlesen. Da es Open Source ist, kannst auch du für eine Änderung sorgen.
Btw werden Crossposts auch nicht so gerne gesehen.
Andreas
Wen es dort vorhanden ist, so kannst du ja den Code nach FPC importieren und estesten,wenn es funktioniert, so kannst du sicher einen Patch einreichen.
Im Zeitaltervon sqlite und SQL haben alte Desktopdatenbanken einen niederen Stellenwert. Deshalb ist eine Erweiterung um das Feature, nurso, sicher nicht auf dem Radar der Entwickler.
Wer an der Software geschrieben hat, kann man in den Logs vom SVN nachlesen. Da es Open Source ist, kannst auch du für eine Änderung sorgen.
Btw werden Crossposts auch nicht so gerne gesehen.
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: DBF und MDX Fehler
Aber bitte nicht im Delphi-Source-Code nachsehen und herauskopieren. Lazarus/FPC soll sauber bleiben!af0815 hat geschrieben:Vieleichtweil es für Delphi und BCP deklariert ist.
Wen es dort vorhanden ist, so kannst du ja den Code nach FPC importieren
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: DBF und MDX Fehler
Ich portieren hier nichts, bin Anfänger. Dann geht's halt nicht. Danke euch trotzdem.
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: DBF und MDX Fehler
So ich hab mal probiert und nun ist folgende Patchdatei entstanden:
dbf_prscore.pas.patch:
Ich habe Trunk 1.9.0 installiert via fpcupdeluxe. Wie kann ich nun fpc und Lazarus neu kompilieren damit ich die Änderung testen kann?
Die gepatchte Datei befindet sich in C:\fpcupdeluxe\fpcsrc\packages\fcl-db\src\dbase
dbf_prscore.pas.patch:
Code: Alles auswählen
Index: dbf_prscore.pas
===================================================================
--- dbf_prscore.pas (revision 38983)
+++ dbf_prscore.pas (working copy)
@@ -1426,6 +1426,18 @@
end;
end;
+procedure FuncLeftString(Param: PExpressionRec);
+var
+ srcLen, index, count: Integer;
+begin
+ srcLen := StrLen(Param^.Args[0]);
+ index := 0;
+ count := PInteger(Param^.Args[1])^;
+ if index + count > srcLen then
+ count := srcLen - index;
+ Param^.Res.Append(Param^.Args[0]+index, count)
+end;
+
procedure FuncUppercase(Param: PExpressionRec);
var
dest: PChar;
@@ -2336,6 +2348,7 @@
{$ifdef SUPPORT_INT64}
Add(TFunction.Create('STR', '', 'LII', 1, etString, FuncInt64ToStr, ''));
{$endif}
+ Add(TFunction.Create('LEFT', 'LEFT', 'SI', 2, etString, FuncLeftString, ''));
Add(TFunction.Create('DTOS', '', 'D', 1, etString, FuncDateToStr, ''));
Add(TFunction.Create('SUBSTR', 'SUBS', 'SII', 3, etString, FuncSubString, ''));
Add(TFunction.Create('UPPERCASE', 'UPPER', 'S', 1, etString, FuncUppercase, ''));
Die gepatchte Datei befindet sich in C:\fpcupdeluxe\fpcsrc\packages\fcl-db\src\dbase
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: DBF und MDX Fehler
Bitte kann mir einer helfen?
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Re: DBF und MDX Fehler
make clean all müsste eigentlich reichen für die FCL.
https://forum.lazarus.freepascal.org/in ... ic=29547.0
http://wiki.freepascal.org/buildfaq
Bei Lazarus kann man das neu bauen innerhalb der IDE veranlassen.
https://forum.lazarus.freepascal.org/in ... ic=29547.0
http://wiki.freepascal.org/buildfaq
Bei Lazarus kann man das neu bauen innerhalb der IDE veranlassen.
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: DBF und MDX Fehler
Also:
Mit cmd in das Verzeichnis C:\fpcupdeluxe\fpcsrc\packages\fcl-db\src\dbase wechseln und dann make clean all ausführen? Muss ich mit Set noch Parameter setzen?
Mit cmd in das Verzeichnis C:\fpcupdeluxe\fpcsrc\packages\fcl-db\src\dbase wechseln und dann make clean all ausführen? Muss ich mit Set noch Parameter setzen?
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: DBF und MDX Fehler
So,
Patch wurde angenommen -> fpc rev 38990
Patch wurde angenommen -> fpc rev 38990
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Re: DBF und MDX Fehler
Sehr gut, gratuliere.sstvmaster hat geschrieben:Patch wurde angenommen -> fpc rev 38990