Feldtyp ermitteln

Spezielle Fragen zu PostgreSQL, MySQL, SQLite, SQL ...
flodder
Foriker
Beiträge: 15
Registriert: Di 29. Dez 2009, 10:56
Kontaktdaten:

Feldtyp ermitteln

Beitrag von flodder » Di 26. Jan 2010, 10:57

Hallo Gambasnutzer

Wie kann ich in einer bestehenden Datenbank (mysql) ermitteln, ob in einer Tabelle ein Feld existiert und was für ein Typ (float, string, ...) das Feld ist?
Hintergrund:
Ich möchte in eine Datenbank ein Feld einfügen bzw. den Typ eines Feldes ändern, um dann die Daten bei Bedarf zu konvertieren.

Der flodder

Honsek
Foriker
Beiträge: 327
Registriert: Do 4. Okt 2007, 17:01
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von Honsek » Di 26. Jan 2010, 18:59

Hallo,

Folgendes führt zum Ziel:
Aufruf des MySQL-Clients in der Konsole mit: hans@ASROCK:~$ mysql -h 127.0.0.1 -u root -p

Arbeit hier mit den Tabellen der vorhandenen Datenbank 'test':

mysql> show databases;
mysql> use test; // Hier kommen dann Deine Datenbank und Deine Tabellen ins Spiel ...
mysql> describe color;

+--------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+----------------+
| color | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(32) | YES | | NULL | |
| french | varchar(32) | YES | | NULL | |
+--------+---------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

Mit freundlichem Gruß

Honsek
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

flodder
Foriker
Beiträge: 15
Registriert: Di 29. Dez 2009, 10:56
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von flodder » Mi 27. Jan 2010, 09:12

Hallo Honsek

Dann wirst Du mir doch sicherlich auch den passenden Gamsbas-Code dafür verraten.
Auch wenn es für ein Gambas-Forum eher ungewöhnlich ist:
Ich suche eine eine Lösung unter Gambas.

Honsek
Foriker
Beiträge: 327
Registriert: Do 4. Okt 2007, 17:01
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von Honsek » Mi 27. Jan 2010, 10:13

Hallo,

nach dem Inhalt Deiner Anfrage dachte ich natürlich nur an eine Antwort für den administrativen Bereich.

Ich möchte in eine Datenbank ein Feld einfügen bzw. den Typ eines Feldes ändern, um dann die Daten bei Bedarf zu konvertieren.

In eine Datennbank kann man natürlich kein Feld einfügen oder den Typ eines Feldes ändern. Das war sicher auch so nicht gemeint. Es ist auch ungewöhnlich diese grundlegenden Änderungen in einem MySQL-Frontend für 'normale' DB-User vorzunehmen. Solche Arbeiten an einer Tabelle erledigt m.E. immer der DB-Administrator. Du kannst aber jederzeit die o.a. SQL-Anweisungen in Deinem GAMBAS-Programm nutzen (siehe Beitrag von roemi: Sql Zugriff in dieser Rubrik). QSL-Anweisung an den MySQL-Server schicken und dann die Daten (die vom Server geliefert werden) anzeigen oder speichern (temporär oder in einer Datei).

Mit freundlichem Gruß

Honsek
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

flodder
Foriker
Beiträge: 15
Registriert: Di 29. Dez 2009, 10:56
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von flodder » Mi 27. Jan 2010, 11:37

Wie kann ich in einer bestehenden Datenbank (mysql) ermitteln, ob in einer Tabelle ein Feld existiert und was für ein Typ (float, string, ...) das Feld ist?

Mir ist schon klar, dass ein Feld nicht Bestandteil einer Datenbank, sondern einer Tabelle ist. Auch wenn ich hier
Ich möchte in eine Datenbank ein Feld einfügen bzw. den Typ eines Feldes ändern, um dann die Daten bei Bedarf zu konvertieren.

nicht nochmal extra darauf hingewiesen habe, dass das Feld Bestandteil der Tabelle ist.

Das Hinzufügen/Ändern von einzelnen Feldern (die sich in einer Tabelle befinden) lässt sich mittels "ALTER" durchführen.
Ja, ich weiß: "ALTER" allein führt nicht zum Ziel, ich muss noch "MODIFY" und etwas mehr angeben :wink:

Da ich gerade an einem Programm zur Waren-Kunden-Rechnungsverwaltung arbeite, habe ich eine Datenbank (mit Tabellen und Feldern) erstellt.
Im Nachhinein erweist es sich für Abfragen als nützlich, wenn ich einigen Feldern (in Tabellen, die sich wiederum in einer Datenbank befinden) einen anderen Feldtyp zuweise.
Ich habe schon einiges an Daten eingegeben, bzw. arbeiten evtl. andere Personen bereits mit dem Programm und haben bereits Daten eingegeben.
Es wäre etwas aufwendig und unangebracht, von den Nutzern zu verlangen, dass sie die Änderungen von Hand ausführen.
Deshalb suche ich unter Gambas eine Möglichkeit, zu überprüfen, ob ein Feld bereits existiert und welchen Typ es besitzt, damit diese Änderungen automatisch vorgenommen werden.
Allerdings waren meine Versuche mit ResultField.Type, Field.Type, ... noch nicht erfolgreich.
Also nochmal meine Frage:
Gibt es unter Gambas die Möglichkeit, zu ermitteln, ob ein Feld existiert und welchen Typ es besitzt?

Honsek
Foriker
Beiträge: 327
Registriert: Do 4. Okt 2007, 17:01
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von Honsek » Mi 27. Jan 2010, 17:32

Hallo,

den folgenden Satz verstehe ich nicht (blauer Teil):

Deshalb suche ich unter Gambas eine Möglichkeit, zu überprüfen, ob ein Feld bereits existiert und welchen Typ es besitzt, damit diese Änderungen automatisch vorgenommen werden.
Frage: Was bedeutet AUTOMATISCH? Wer soll diese Änderungen vornehmen? Das sollte nur der DB-Administrator tun! Die User sind damit nicht zu belasten.
Ich würde folgendermaßen vorgehen:

[*] Tabelle sperren
[*] Die oben stehende SQL-Anweisung ... describe tabellen_name; im DB-Client oder Deinem bevorzugten Admin-Programm ausführen.
[*] Neues Tabellenfeld einfügen mit dem Typ, der gewünscht wird.
[*] Dann Daten aus dem alten Feld in das neue kopieren (falls das typverträglich ist). Ob es Konvertierungsmöglichkeiten unter MySQL gibt, muss noch ergründet werden.
[*] Altes Feld löschen
[*] Neues Feld (mit dem alten Feldnamen) umbenennen.
[*] Tabelle freigeben

Mit freundlichem Gruß

Honsek
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

flodder
Foriker
Beiträge: 15
Registriert: Di 29. Dez 2009, 10:56
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von flodder » Mi 27. Jan 2010, 18:40

Hallo Honsek

Deinen Antworten (oder eher deinen Fragen) entnehme ich, dass du auch keine Antwort auf meine Frage hast. Schade :?
Aber vielleicht weiß ja jemand anders, was mit folgender Frage gemeint ist:

Wie kann ich mit Gambas den Typ eines Feldes (Datenbank/Tabelle) ermitteln?

Der flodder

Honsek
Foriker
Beiträge: 327
Registriert: Do 4. Okt 2007, 17:01
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von Honsek » Do 28. Jan 2010, 17:41

Hallo,

doch, ich habe eine Antwort. Im folgenden ist sie nachvollziehbar. Benutzt wird das Datenbankbeispiel Database aus der Beispielsammlung. Ich habe nur ganz wenige Änderungen vorgenommen, die aber genau das leisten, was Du möchtest. Die PRINT-Ausgaben erfolgen - wie im Programm - in der unteren Konsole. Geändert respektive ergänzt habe ich nur die roten Quelltextzeilen in der Prozedur btnConnect_Click(). Beachte bitte, dass in der Datenbank test 2 Tabellen enthalten sind und nur wenige Felder mit Vorgabewerten (default) belegt sind. Die Feldtypen werden nur als Integer-Wert zurück- und ausgegeben. Daher die Hinweise im Kommentar in elegantem grün. In einer weiteren Kontrollstruktur könnte man die Ausgabe auch konvertieren, so dass die Feldtypen zum Beispiel als Datum oder Zeichenkette ausgegeben werden - ist jetzt eingefügt... .


' Gambas class file

PRIVATE $hConn AS Connection

PUBLIC SUB btnConnect_Click()

DIM sName AS String
DIM hTable AS Table
DIM feld AS Field
DIM sText AS String[]

sText = ["", "",
"BLOB -2", "SERIAL AUTOINCREMENT -1", "NULL 0", "WAHRHEITSWERT 1", "BYTE 2", "SHORT-INTEGER 3", "INTEGER 4",
"LONG-INTEGER 5", "SINGLE 6", "REELLE ZAHL 7", "DATUM 8", "Zeichenkette 9", "VARIANT 11", "OBJEKT 16"]

TRY $hConn.Close
sName = txtName.Text

WITH $hConn
.Type = cmbType.Text
.Host = txtHost.Text
.Login = txtUser.Text
.Password = txtPassword.Text
.Name = ""
END WITH

IF chkCreate.Value THEN
$hConn.Open
IF NOT $hConn.Databases.Exist(sName) THEN
$hConn.Databases.Add(sName)
ENDIF
$hConn.Close
ENDIF

$hConn.Name = sName
$hConn.Open

FOR EACH hTable IN $hConn.Tables
PRINT "Tabellen-Typ = " & hTable.Type
PRINT "Tabellen-Name = " & hTable.Name
FOR EACH feld IN hTable.Fields
PRINT "TabellenFeldName = " & feld.Name
PRINT "TabellenFeldtyp (als Zahl!) = " & feld.Type
PRINT sText[feld.Type + 4]
PRINT "TabellenFeldLänge = " & feld.Length
PRINT "TabellenFeld-Vorgabewert = " & feld.Default
NEXT
NEXT


' LINK: http://gambasdoc.org/help/lang/typeof
' Returns the type OF an expression AS an integer value.
' Expression type RETURN value
'
' Blob ~>> -2
' Serial ~>> -1 ; http://gambasdoc.org/help/comp/gb.db/db/serial
' NULL ~>> 0
' Boolean ~>> 1
' Byte ~>> 2
' Short ~>> 3
' Integer ~>> 4
' Long ~>> 5
' Single ~>> 6
' Float ~>> 7
' Date ~>> 8
' String ~>> 9
' Variant ~>> 11
' Object ~>> 16
'
' See Predefined Constants FOR a list OF the datatypes returned by this function.


frmDatabase.Enabled = TRUE
frmRequest.Enabled = TRUE

CATCH
Message.Error(DConv(Error.Text))
END

Lass uns wissen flodder, ob Dir genau das im Verständnis fehlte.

NACHTRAG:
Folgendes kann noch getestet werden, wenn DIM hTable AS Table in der o.a. Prozedur gelöscht wird und dafür PRIVATE hTable AS Table als globale Variable nach PRIVATE $hConn AS Connection eingetragen wird. Einfach noch einen Button spendieren und als Ereignisbehandlungsroutine folgendes eingefügen:

PUBLIC SUB btnFeldTesten_Click()

IF hTable.Fields.Exist("birth") THEN
PRINT "Das Feld Geburtstags-Datum existiert in der DB-Tabelle " & hTable.Name
ELSE
PRINT "Das Feld Geburtstags-Datum existiert in der DB-Tabelle " & hTable.Name & " nicht!"
ENDIF

END



Mit freundlichem Gruß

Honsek
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

flodder
Foriker
Beiträge: 15
Registriert: Di 29. Dez 2009, 10:56
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von flodder » Fr 29. Jan 2010, 09:53

Hallo Honsek

Danke für Deine Hilfe.

...
FOR EACH hTable IN $hConn.Tables
PRINT "Tabellen-Typ = " & hTable.Type
PRINT "Tabellen-Name = " & hTable.Name
FOR EACH feld IN hTable.Fields
PRINT "TabellenFeldName = " & feld.Name
PRINT "TabellenFeldtyp (als Zahl!) = " & feld.Type
PRINT sText[feld.Type + 4]
PRINT "TabellenFeldLänge = " & feld.Length
PRINT "TabellenFeld-Vorgabewert = " & feld.Default
NEXT
NEXT
...


funktioniert zwar, ist aber für mein Vorhaben nicht sonderlich hilfreich.

...
IF hTable.Fields.Exist("birth") THEN
...


hatte ich auch schon ausprobiert, liefert mir allerdings nur die Fehlermeldung Null object.

Nochmal zum Hintergrund:
Ich wollte für mein Geschäft eine Datenbank erstellen (GamKuWa, siehe Projekte), mit der ich meine Waren verwalten kann. Ursprünglich sollte das auch keine große Sache werden. Ein paar Waren eingeben und die Daten am Monitor anzeigen lassen. Die entsprechende Tabelle dafür hatte ich mit

...
IF NOT $hConn.Tables.Exist(sTable_waren) THEN

hTable_waren = $hConn.Tables.Add(sTable_waren)

hTable_waren.Fields.Add(SConv$("id_waren"), db.Integer, 8)
hTable_waren.Fields.Add(SConv$("lieferant_waren"), gb.String, 64)
hTable_waren.Fields.Add(SConv$("kategorie_waren"), gb.String, 64)
hTable_waren.Fields.Add(SConv$("bezeichnung_waren"), gb.String, 64)
hTable_waren.Fields.Add(SConv$("stueck_waren"), gb.Boolean)
hTable_waren.Fields.Add(SConv$("artnr_waren"), gb.String, 64)
hTable_waren.Fields.Add(SConv$("spezifikation_waren"), gb.String, 128)
hTable_waren.Fields.Add(SConv$("preis_ek_netto_waren"), gb.String, 16)
hTable_waren.Fields.Add(SConv$("preis_vk_netto_waren"), gb.String, 16)
hTable_waren.Fields.Add(SConv$("preis_ek_brutto_waren"), gb.Float, 16)
hTable_waren.Fields.Add(SConv$("preis_vk_brutto_waren"), gb.String, 16)
hTable_waren.Fields.Add(SConv$("mehrwertsteuersatz_waren"), gb.String, 8)
hTable_waren.Fields.Add(SConv$("bestand_waren"), gb.Integer, 16)
hTable_waren.Fields.Add(SConv$("mindestbestand_waren"), gb.Integer, 16)
hTable_waren.Fields.Add(SConv$("einheit_waren"), gb.String, 16)
hTable_waren.Fields.Add(SConv$("bemerkung_waren"), gb.String, 500)

hTable_waren.PrimaryKey = ["id_waren"]
hTable_waren.Update
ENDIF
...

erzeugt. Mittlerweile sind einige Tabellen dazu gekommen und ich benutze das Programm u.a. auch zur Rechnungserstellung und Listendruck der Waren. Um einige Filter anwenden zu können (z.B. Waren nach Preisen filtern) sind die Felder mit dem Typ aber nicht zu gebrauchen.
Änderung (bei mir per Hand durchgeführt):

...
hTable_waren.Fields.Add(SConv$("preis_ek_netto_waren"), gb.Float, 16)
hTable_waren.Fields.Add(SConv$("preis_vk_netto_waren"), gb.Float, 16)
hTable_waren.Fields.Add(SConv$("preis_ek_brutto_waren"), gb.Float, 16)
hTable_waren.Fields.Add(SConv$("preis_vk_brutto_waren"), gb.Float, 16)
...

Deshalb will ich bei den folgenden Programmversionen überprüfen, ob die Felder bereits den richtigen Typ besitzen, damit die Filter auch funktionieren. Sollte das nicht der Fall sein, hat der Anwender die Möglichkeit, den Feldern den neuen Typ zuzuweisen und die Daten zu konvertieren oder die Änderungen von Hand vorzunehmen. Das funktioniert natürlich nur dann, wenn er die entsprechenden Berechtigungen hat bzw. nochmal darauf hingewiesen wird, eine Sicherheitskopie zu erstellen. Die Sicherheitskopie kann dann auch vom Programm durchgeführt werden. Welche Variante der Anwender bevorzugt bleibt ihm überlassen.

Weiterhin kann es sein, dass zu der Tabelle noch Felder hinzugefügt werden (z.B. Lagerplatz). Dazu muss ich natürlich wissen, ob das Feld bereits existiert.

Sinnvoll wäre es also, direkt zu überprüfen, ob in einer bestimmten Tabelle ein Feld existiert und welchen Typ es besitzt.

Der flodder

Honsek
Foriker
Beiträge: 327
Registriert: Do 4. Okt 2007, 17:01
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von Honsek » Fr 29. Jan 2010, 15:40

Hallo,

die Fehlermeldung Null object kann nur kommen, wenn Du den von mir mitgegebenen Quelltext nicht konsequent ergänzt hast und vor dem Klick auf den (Zusatz-)Button btnFeldTesten nicht zum DB-Server verbunden hast.

Alle meine Hinweise treffen genau Deine Anfragen. Wie ich aber der Waren-Tabelle entnehmen kann, ist offensichtlich schon beim Datenbankentwurf etwas falsch angelegt worden:

hTable_waren.Fields.Add(SConv$("preis_vk_netto_waren"), gb.String, 16)
hTable_waren.Fields.Add(SConv$("preis_ek_brutto_waren"), gb.Float, 16)
hTable_waren.Fields.Add(SConv$("preis_vk_brutto_waren"), gb.String, 16)
hTable_waren.Fields.Add(SConv$("mehrwertsteuersatz_waren"), gb.String, 8)

... weil Daten mehrfach in der DB-Tabelle gespeichert werden (Redundanz!). Die Netto-Werte und der Mehrwertsteuersatz reichen aus. Da es in der BRD mehrere MWSt-Sätze gibt, ist es sicher ein guter Plan diese auch zu speichern - es sei denn, dass diese anderen Sätze bei Dir nicht vorkommen.

Einige Fragen habe ich noch, um weiter helfen zu können:

- Ist der folgende Satz ernst gemeint?
Sollte das nicht der Fall sein, hat der Anwender die Möglichkeit, den Feldern den neuen Typ zuzuweisen und die Daten zu konvertieren oder die Änderungen von Hand vorzunehmen.

- WIE legst Du - oder der Benutzer - eine Sicherheitskopie an. Was wird wie und wo unter welchen Rechten gespeichert? Ist die Kopie wieder eine Tabelle oder in welcher Form wird gespeichert?

Mit freundlichem Gruß

Honsek
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

flodder
Foriker
Beiträge: 15
Registriert: Di 29. Dez 2009, 10:56
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von flodder » Fr 29. Jan 2010, 19:24

Hallo Honsek

Deinen Quelltext habe ich übernommen und mehrfach überprüft.

    DIM hTable AS Table in der o.a. Prozedur gelöscht
    PRIVATE hTable AS Table als globale Variable nach PRIVATE $hConn AS Connection eingetragen
    $hConn.Name = sName
    $hConn.Open

Habe ich etwas übersehen?

Das sollte also passen. Wenn die Verbindung zum DB-Server nicht existieren würde, würde der FOR ...NEXT Teil auch nicht funktionieren, oder?

hTable_waren.Fields.Add(SConv$("preis_vk_netto_waren"), gb.Float, 16)
hTable_waren.Fields.Add(SConv$("preis_ek_brutto_waren"), gb.Float, 16)
hTable_waren.Fields.Add(SConv$("preis_vk_brutto_waren"), gb.Float, 16)
hTable_waren.Fields.Add(SConv$("mehrwertsteuersatz_waren"), gb.Float, 8)

Der Teil gefällt mir auch nicht. Leider habe ich das Problem, dass ich bei Waren mal den Nettobetrag habe und mal den Bruttobetrag. Beim Umrechnen ergeben sich dann Rundungsfehler, so dass die Werte manchmal nicht mehr stimmen. Wenn ich z.B. etwas für 7,99 Euro kaufe, wäre der Nettowert (19 % MwSt) 6,71 Euro. Wenn ich also den Nettowert speichere und den Bruttowert zurück rechne, dann bekomme ich 7,98 Euro heraus.
Ich werde aber mal testen, ob es anders herum auch zu Fehlern kommt. Dann bestünde zumindest die Möglichkeit, immer den Bruttobetrag zu speichern.

Mit Sicherheitskopie meine ich z.B., dass die komplette Datenbank mit allen Tabellen, Feldern und Daten unter einem anderen Namen/in einem anderen Verzeichnis kopiert wird.

Also nochmal:
Für die Rechtevergabe ist der Admin zuständig. Da kann auch mein Programm nichts dran ändern.
Der Anwender kann nur das machen, was der Admin ihm erlaubt. Wenn der Admin also der Meinung ist, dass der Benutzer die entsprechenden Änderungen vornehmen darf und ihm die entsprechenden Rechte gewährt, dann hat der Benutzer auch die Möglichkeit, die Änderungen vorzunehmen. Bei einem einigermaßen fähigen und umsichtigen Admin wird das aber wohl eher nicht der Fall sein, so dass der Admin diese Änderungen durchführen wird. :wink:


Viele Grüße
Der flodder

Benutzeravatar
Ray65
Foriker
Beiträge: 113
Registriert: Fr 3. Okt 2008, 15:00
Wohnort: Königseggwald, Ba-Wü
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von Ray65 » So 31. Jan 2010, 11:14

Hallo Ihr Beiden,

Also das Problem mit Rechenfehler zwischen Netto- und Bruttobeträge löse ich immer so:
Die Felder für Werte mit Komma-zahlen in deiner DB grundsätzlich 6-Stellig hinter der Komma anlegen, die Anzeige im Programm wahlweise auf 2, 3 oder 4-Stellig formatieren und in Formularausdrücke 2-Stellig ausdrucken.
So habe ich noch nie Rechenfehler gehabt.

Gruß Raymond
Ubuntu 12.04 - Gnome 3.4.1 - Gambas 3.3.3

"Man kann kein Programm idiotensicher machen, weil die Idioten so erfinderisch sind!"

flodder
Foriker
Beiträge: 15
Registriert: Di 29. Dez 2009, 10:56
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von flodder » Do 4. Feb 2010, 22:04

Hallo Raymond

An der Lösung arbeite ich auch gerade, aber irgendwie habe ich wohl momentan ein Brett vorm Kopf. Der zu speichernde Wert (float-Variable) zeigt mir mit PRINT 12 Nachkommastellen an, aber gespeichert werden nur zwei Nachkommastellen (DB-Feld ist float).
Momentan läuft hier so einiges schief. Da muss ich wohl mal die Glaskugel befragen :shock:

Viele Grüße
Der Flodder

Benutzeravatar
Ray65
Foriker
Beiträge: 113
Registriert: Fr 3. Okt 2008, 15:00
Wohnort: Königseggwald, Ba-Wü
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von Ray65 » Fr 5. Feb 2010, 12:18

Hi flodder,

hast Du es schon mal mit decimal probiert? Länge auf 10,6 einstellen.

Gruß
Ubuntu 12.04 - Gnome 3.4.1 - Gambas 3.3.3

"Man kann kein Programm idiotensicher machen, weil die Idioten so erfinderisch sind!"

flodder
Foriker
Beiträge: 15
Registriert: Di 29. Dez 2009, 10:56
Kontaktdaten:

Re: Feldtyp ermitteln

Beitrag von flodder » Fr 5. Feb 2010, 16:43

Hallo Raymond

Das Feld erstelle ich mit

hTable_waren.Fields.Add(SConv$("preis_ek_netto_waren"), gb.Float, 14, 6)

decimal, numeric, usw. funktionieren leider nicht.

Viele Grüße
Der flodder

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast