Seite 1 von 1
PostgreSQL DBS_DEC ?
Verfasst: Mi, 27. Jun 2012 21:38
von AUGE_OHR
hi,
es gibt
Code: Alles auswählen
DLL libpq XIMPORT ZSTRING PQfname(HANDLE result,int field_num)
DLL libpq XIMPORT int PQftype(HANDLE result, int field_num)
DLL libpq XIMPORT int PQfsize(HANDLE result, int field_num)
was mir nun "fehlt" ist, für numerische "Feld"er, die Dezimalstellen DBS_DEC
.... oder gibt es das bei PostgreSQL nicht ?
Re: PostgreSQL DBS_DEC ?
Verfasst: Do, 28. Jun 2012 4:39
von AUGE_OHR
hi,
so wie das aussieht ist es noch viel komplizierter ...
Code: Alles auswählen
DLL libpq XIMPORT int PQftype(HANDLE result, int field_num)
wie man am Type "INT" sehen kann bekomme ich für den PTf"Type" eine Nummer.
es sind Konstanten
http://doxygen.postgresql.org/include_2 ... pe_8h.html
diese hab ich schon identifizert
Code: Alles auswählen
FUNCTION Fieldnumber2type(nNumber)
LOCAL cRet := ""
DO CASE
CASE nNumber = 1700 ; cRet := "N"
CASE nNumber = 1082 ; cRet := "D"
CASE nNumber = 1042 ; cRet := "C"
CASE nNumber = 25 ; cRet := "M" // Text
CASE nNumber = 17 ; cRet := "O" // Bitmap
CASE nNumber = 16 ; cRet := "L"
OTHERWISE
cRet := STR(nNumber)
ENDCASE
RETURN cRet
für "numerisch" hab ich also 1700 ... egal ob Dezimalstellen oder nur INT() ?!
Frage : seht ihr eine Konstante auf die "numerisch" noch passt oder was man noch einbinden sollte.
klar im Prinzip "alle" Konstanten, aber Xbase++ kann ja gar nicht "alle".
Re: PostgreSQL DBS_DEC ?
Verfasst: Mo, 02. Jul 2012 5:58
von AUGE_OHR
hi,
alles was ich mit PQgetvalue() bekomme ist ein (Z)STRING wegen ot4xb.
nun scheint es PostgreSQL keine Konstante für "DECIMAL" zu geben wie bei MySQL
Code: Alles auswählen
case nNum == MYSQL_SHORT_TYPE .OR.;
nNum == MYSQL_TINY_TYPE .OR.;
nNum == MYSQL_LONG_TYPE .OR.;
nNum == MYSQL_LONGLONG_TYPE .OR.;
nNum == MYSQL_FLOAT_TYPE .OR.;
nNum == MYSQL_DOUBLE_TYPE .OR.;
nNum == MYSQL_ENUM_TYPE .OR.;
nNum == MYSQL_SET_TYPE .OR.;
nNum == MYSQL_DECIMAL_TYPE .OR.;
nNum == MYSQL_INT24_TYPE
cTypeXbase := "N"
aber unter "Eigenschaften" eines numerischen "Field" sehe ich in pgAdmin
- SQL_Field_Property_Datentyp.PNG (35.06 KiB) 7048 mal betrachtet
und wie komme ich da ran ?
Re: PostgreSQL DBS_DEC ?
Verfasst: Mo, 02. Jul 2012 8:31
von brandelh
Übrigens, falls das das noch nicht bekannt ist :
SQL: Numeric 9,2 => xbase 10,2
Bei SQL wird das Komma nicht mitgezählt
Re: PostgreSQL DBS_DEC ?
Verfasst: Di, 03. Jul 2012 11:51
von UliTs
brandelh hat geschrieben:Übrigens, falls das das noch nicht bekannt ist :
SQL: Numeric 9,2 => xbase 10,2
Bei SQL wird das Komma nicht mitgezählt
Was ist denn xbase 10,2 ?
Du meinst sicher die DBF-Struktur
Beim ADS ist es so:
SQL (ADT): Numeric 10,2 => DBF 9,2
Da bei ADT-Tabellen sowohl das Komma als auch das Vorzeichen mitgezählt wird!
Bei DBF wird nur bei negativen Zahlen das Komma mitgezählt. Z.B.
N,5,2 hat bei DBF einen Bereich von -9.99 bis 99.99
und
N,5,2 hat bei ADT einen Bereich von -9.99 bis +9.99
Uli
Re: PostgreSQL DBS_DEC ?
Verfasst: Di, 03. Jul 2012 12:14
von brandelh
UliTs hat geschrieben:Was ist denn xbase 10,2 ?
Du meinst sicher die DBF-Struktur
genau und auch Str() und Transform()
Re: PostgreSQL DBS_DEC ?
Verfasst: Di, 03. Jul 2012 23:00
von AUGE_OHR
hi,
mir ist es mit der "Syntax" hier weniger wichtig ... es wären immer 2 Dezimalstellen.
mir geht es nun um die "Property" ( Eigenschaften ) des "Field" mit Name = "lageraus"
Code: Alles auswählen
METHOD PGResult:fname( i )
LOCAL c := PQfname( ::resID, i )
RETURN c
damit komme ich an den "Field" Namen
Code: Alles auswählen
METHOD PGResult:getValue( nRow, nCol )
LOCAL c := PQgetvalue( ::resID, nRow, nCol )
RETURN c
damit an den "Inhalt"
... und wie an die "Property" ?
auch wird "Datentyp" sicherlich nur eine "übersetzung" sein ... wie heissen die iVars "wirklich"