Problem mit Zeos, haben das noch andere?

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
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: Problem mit Zeos, haben das noch andere?

Beitrag von Christian »

Du musst dich nicht überschwänglich bedanken. Und ich helfe auch gern solangs nicht as dem rahmen fällt. Und das merkst du dann bei mir sei dir dessen versichert ;). Deine Fragen sind ja recht sinvoll im gegensatz zu einigem was ich hier schon gesehn hab.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Kuster Peter
Beiträge: 205
Registriert: So 2. Dez 2007, 20:47
OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
CPU-Target: xxBit
Wohnort: Schweiz

Re: Problem mit Zeos, haben das noch andere?

Beitrag von Kuster Peter »

Lieber Christian, ich weis, dass Du sehr hilfsbereit bist. Manchmal bin ich etwas schwer von Begriff und brauche halt eine 1:1 Anleitung. Ich weis, dass es nicht selbstverständlich ist Hilfe zu bekommen und Dank wem Dank gebührt. Ich bin Dir und allen anderen wirklich dankbar und wollte dies einfach einmal sagen. Hoffe natürlich, dass ich eines Tages Euch bei einem Problem mal helfen kann, was ich dann auch mit Freude machen werde.

Peter

KOBOLD Messring GmbH
Beiträge: 155
Registriert: Mi 22. Aug 2007, 14:52
OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 65719 Hofheim am Taunus
Kontaktdaten:

Re: Problem mit Zeos, haben das noch andere?

Beitrag von KOBOLD Messring GmbH »

Habe auch Probleme mit Zeos, installierte neue Version 7. In einer Anwendung, die vorher einwandfrei lief, konnte ich keine 2. Query mehr öffnen, nur immer eine. Keine Ahnung woran das liegt. Im Programm wird die Query mit ZQuery1.Close geschlossen, dann wieder geöffnet und bazzz weg. Zurück auf Zeos 6.6 kein Problem.
Versuche jetzt die Lazarus-interne SQLdb-Komponenten zu verwenden, aber bekomme jedesmal `access violation` wenn ich versuche die ODBCConnection auf Connected := true zu setzen.
¿Jemand eine Idee?
Ich muss eine Anwendung schreiben, die sowohl auf MySQL (meine Testumgebung unter Linux) als auch auf Mickysoft-Access zugreifen kann (will der Auftraggeber so). Also dachte ich, nimm die TODBCConnection, aber daran scheitert es irgendwie
¡Bitte Hilfe!

Kuster Peter
Beiträge: 205
Registriert: So 2. Dez 2007, 20:47
OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
CPU-Target: xxBit
Wohnort: Schweiz

Re: Problem mit Zeos, haben das noch andere?

Beitrag von Kuster Peter »

Hallo Kobold

Access bedienst Du am Besten über ADO. SQLDB kann ich Dir nicht empfehlen. Ist noch nicht stabil genug. Zeos 7? 6.6.3 ist doch die neuste Version?

Doch bin auch noch ein Anfänger. Da gibt es in diesem Forum kompetentere Leute.

Peter

Alfred
Beiträge: 101
Registriert: Do 22. Nov 2007, 20:06
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: München

Re: Problem mit Zeos, haben das noch andere?

Beitrag von Alfred »

Wer in Ruhe arbeiten möchte verwendet Zeos 6.6.2.

Es gibt Probleme mit der 6.6.3 und bestimmten Firebirdversionen.

Gruß
Alfred

Kuster Peter
Beiträge: 205
Registriert: So 2. Dez 2007, 20:47
OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
CPU-Target: xxBit
Wohnort: Schweiz

Re: Problem mit Zeos, haben das noch andere?

Beitrag von Kuster Peter »

Komisch und ich hörte, dass die 6.6.2 mit Firebird 2.0.4 und Firebird 2.1.1 Probleme hat. Egal, beide Versionen schneiden die Kommastellen im Zusammenhang mit Lazarus und Dezimal Feldern ab.

Peter

Alfred
Beiträge: 101
Registriert: Do 22. Nov 2007, 20:06
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: München

Re: Problem mit Zeos, haben das noch andere?

Beitrag von Alfred »

Ich verwende Firebird 2.0.3 und Zeos 6.6.2 und das läuft völlig problemlos, was die Datenbank und SQL-Syntax angeht.

Das Problem mit den Anzeigen ist m.E. ein Problem des Steuerelements(TEdit).

Wenn man unter Delphi mit dem TMS-Editsteuerelement arbeitet funktioniert alles einwandfrei.
Delphi alleine hat auch Probleme mit dem TEdit(Ausrichten des Edits). Das kann man im Kochbuch zu Delphi 6 nachlesen.

Für Lazarus habe ich noch keinen Lösungsansatz.
Der Lösungsvorschlag von Christian zeigt die Daten zwar richtig an, aber das Ändern von Daten funktioniert leider nicht.

Gruß
Alfred

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: Problem mit Zeos, haben das noch andere?

Beitrag von Christian »

Quark, das Problem ist ein ZeOS Problem, die Datenbank stellt die Anzeigemaske bereit bzw das Datenbankinterface.
Mit anderen Datenbankinterfaces gehts ohne Probleme.
Das ändern der Daten funktiniert bei mir in einem DBGrid ohne Probleme.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Alfred
Beiträge: 101
Registriert: Do 22. Nov 2007, 20:06
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: München

Re: Problem mit Zeos, haben das noch andere?

Beitrag von Alfred »

Hallo Christian,

TFloatField(ZQuery1.Fields[6].DisplayFormat := '#,###.00';

im FormActivate

zeigt z.B. 1.501,01 im TDBedit.

Somit wird doch von Zeos der richtige Wert(1501,01) aus der Datenbank ausgelesen.

Wenn ich nun z.B. den Wert im TDBedit 1.501,02 ändern möchte erhalte ich
die Fehlermeldung:

"1.501,02" is not a valid float

Gruß
Alfred

piper62
Beiträge: 131
Registriert: Sa 5. Apr 2008, 17:57
OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
CPU-Target: 32Bit/64Bit
Wohnort: Ulm

Re: Problem mit Zeos, haben das noch andere?

Beitrag von piper62 »

@Alfred
Mit dem von Dir definierten Zahlenformat hast Du ein angloamerikanisches Format angegeben: '#,###.00'
wenn Du dann "1.501,02" eingibst muss es meiner Meinung nach auch krachen. Hast Du mal versucht "1,501.02" einzugeben?
Meiner Erfahrung nach sind solche Dinge meist Deklarationsprobleme in den Formatanweisungen.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Problem mit Zeos, haben das noch andere?

Beitrag von mse »

Alfred hat geschrieben: Wenn ich nun z.B. den Wert im TDBedit 1.501,02 ändern möchte erhalte ich
die Fehlermeldung:

"1.501,02" is not a valid float
Probiere mal "1501,02" einzugeben. Wenn du

Code: Alles auswählen

TFloatField(ZQuery1.Fields[6].EditFormat := '0.00';
angibst, sollte der thousandseparator beim editieren automatisch verschwinden.

Martin
Zuletzt geändert von mse am Do 6. Nov 2008, 21:53, insgesamt 1-mal geändert.

Alfred
Beiträge: 101
Registriert: Do 22. Nov 2007, 20:06
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: München

Re: Problem mit Zeos, haben das noch andere?

Beitrag von Alfred »

Hallo Martin

Dein Vorschlag funktioniert.

Gruß
Alfred

Kuster Peter
Beiträge: 205
Registriert: So 2. Dez 2007, 20:47
OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
CPU-Target: xxBit
Wohnort: Schweiz

Re: Problem mit Zeos, haben das noch andere?

Beitrag von Kuster Peter »

Habe alles mal nachgebaut, doch der Befehl in FormAcitvate will er nicht aktzeptieren. Das Tdbedit feld1 ist mit einem Float Feld verbunden.

Hier mein Code:

Code: Alles auswählen

unit dbtest;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  ZConnection, ZDataset, db, DbCtrls, MaskEdit;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Datasource1: TDatasource;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBNavigator1: TDBNavigator;
    ZConnection1: TZConnection;
    ZQuery1: TZQuery;
    procedure Datasource1StateChange(Sender: TObject);
    procedure DBEdit1Change(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 
 
var
  Form1: TForm1; 
 
implementation
 
{ TForm1 }
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 
end;
 
procedure TForm1.DBEdit1Change(Sender: TObject);
begin
 
end;
 
procedure TForm1.FormActivate(Sender: TObject);
begin
  TFloatField(ZQuery1.Fields[1].editFormat := '0.00';
end;
 
procedure TForm1.Datasource1StateChange(Sender: TObject);
begin
 
end;
 
initialization
  {$I dbtest.lrs}
 
end.

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: Problem mit Zeos, haben das noch andere?

Beitrag von Christian »

Als einfache Klammersetzung sollte man schon finden auch als Anfänger ... ;)

TFloatField(ZQuery1.Fields[1]).editFormat := '0.00';
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Kuster Peter
Beiträge: 205
Registriert: So 2. Dez 2007, 20:47
OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
CPU-Target: xxBit
Wohnort: Schweiz

Re: Problem mit Zeos, haben das noch andere?

Beitrag von Kuster Peter »

Ja war dumm von mir, das Muster abzuschreiben, das auch ohne Klammer war. Sorry. Asche auf mein Haupt.

Doch mein Problem ist damit nicht behoben. Es nimmt zwar z.b. 555.55 als Eingabe an, doch sobald ich die Eingabe speichere oder auf ein anderes Feld klicke, dann wird auf 556 aufgerundet. Die Kommastellen werden abgeschnitten obwohl das Feld in der Datenbank mit Float deklariert ist. Oder muss ich es anders deklarieren. Mit dezimal geht es auch nicht.

Peter

Antworten