PostgreSQL Field Name "Laenge" ? [erledigt]

Hier dreht es sich um den PostGre Server

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

PostgreSQL Field Name "Laenge" ? [erledigt]

Beitrag von AUGE_OHR »

hi,

ich wollt mein "ModiStru" Modul für PostgreSQL Fields verwenden und hab ein "Problem"
Pg_DbStructur.PNG
Pg_DbStructur.PNG (36.56 KiB) 10035 mal betrachtet
hat jemand schon ein "fertiges" Modul für "Longname" ?

Frage : wie lang darf den ein Field Name unter PostgreSQL sein ?

p.s. hat eine "Integer" wirklich Len = 19 ?
Zuletzt geändert von AUGE_OHR am Di, 31. Jul 2012 21:56, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: PostgreSQL Field Name "Laenge" ?

Beitrag von UliTs »

Hallo Jimmy,

zum P.S. kann ich etwas sagen:
ich vermute, Du verwechselst "Integer" und "Numeric".
Das PGu-Programm (gehört dies zum PostGreeSQL-Server?) zeigt bei den letzten 3 Feldern N,19 an.
Also wird es sich um numerische Felder handeln :-) .

Uli^
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: PostgreSQL Field Name "Laenge" ?

Beitrag von AUGE_OHR »

UliTs hat geschrieben:ich vermute, Du verwechselst "Integer" und "Numeric".

Das PGu-Programm (gehört dies zum PostGreeSQL-Server?) zeigt bei den letzten 3 Feldern N,19 an.
Also wird es sich um numerische Felder handeln :-) .
da ich der Autor von PGu bin hab natürlich ich den Mist gebaut.

ich hab ja mein DBF Modul genommen und wollte damit für PostgreSQL Field ein "MODI STRU" bauen.
nun hatte ich "nur" bemerkt das "COPY STRUCTURE EXTENDED" aber die Feldname auf 10 Zeichen kürzt und deshalb die Frage nach der "Länge" eines Field Namen.

wie du richtig bemerkst... das sind "Integer" und keine "Numeric" was DbCopyExtStruct() nicht "verstand".
so ist es nun "richtig"
Integer_32.PNG
Integer_32.PNG (12.64 KiB) 10011 mal betrachtet
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: PostgreSQL Field Name "Laenge" ?

Beitrag von brandelh »

Eine LONG (Standardinteger bei 32 bit Systemen) benötigt aber nur 4 Byte zur Speicherung (32 bit) ;-)
Die maximale Anzeigelänge ohne Vorzeichen sind 10 Stellen, also müsste es bei einer DBF 11 sein (−2.147.483.648 bis 2.147.483.647)
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: PostgreSQL Field Name "Laenge" ?

Beitrag von AUGE_OHR »

hi,

wir (Edgar und ich) ermitteln die PgSQL:DbStruc() so

Code: Alles auswählen

::exec( "SELECT column_name, data_type, character_maximum_length, numeric_precision,numeric_scale " + ;
        "FROM information_schema.columns WHERE table_name='" + cTable + "'" )

oStruct := ::result
... aber ich weiss immer noch nicht wie lang ein Fieldname maximal sein darf ???
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: PostgreSQL Field Name "Laenge" ?

Beitrag von brandelh »

Geh doch in den Admin und erstelle Felder mit immer längeren Namen bis es kracht ;-)
Gruß
Hubert
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: PostgreSQL Field Name "Laenge" ?

Beitrag von georg »

Hallo, Hubert -


so sehr ich Deinen Vorschlag kenne (und oft auch selbst befolge), PostgreSQL ist da sehr geheim:
4.1.1. Identifiers and Key Words

Tokens such as SELECT, UPDATE, or VALUES in the example above are examples of key words, that is, words that have a fixed meaning in the SQL language. The tokens MY_TABLE and A are examples of identifiers. They identify names of tables, columns, or other database objects, depending on the command they are used in. Therefore they are sometimes simply called "names". Key words and identifiers have the same lexical structure, meaning that one cannot know whether a token is an identifier or a key word without knowing the language. A complete list of key words can be found in Appendix C.

SQL identifiers and key words must begin with a letter (a-z, but also letters with diacritical marks and non-Latin letters) or an underscore (_). Subsequent characters in an identifier or key word can be letters, underscores, digits (0-9), or dollar signs ($). Note that dollar signs are not allowed in identifiers according to the letter of the SQL standard, so their use might render applications less portable. The SQL standard will not define a key word that contains digits or starts or ends with an underscore, so identifiers of this form are safe against possible conflict with future extensions of the standard.

The system uses no more than NAMEDATALEN-1 bytes of an identifier; longer names can be written in commands, but they will be truncated. By default, NAMEDATALEN is 64 so the maximum identifier length is 63 bytes. If this limit is problematic, it can be raised by changing the NAMEDATALEN constant in src/include/pg_config_manual.h.
(Hervorhebungen von mir.)

Quelle: http://www.postgresql.org/docs/9.1/stat ... DENTIFIERS

Zu dem Zitat gehört auch noch dieser Hinweis:
Legal Notice

PostgreSQL is Copyright © 1996-2011 by the PostgreSQL Global Development Group and is distributed under the terms of the license of the University of California below.

Postgres95 is Copyright © 1994-5 by the Regents of the University of California.

Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS-IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
In der Version 9.1 sind 63 Stellen signifikant, d.h. das System akzeptiert auch längere Namen, verwendet intern aber nur die ersten 63 Stellen.

Warum kommt keiner auf die Frage, mal in die Dokumentation zu schauen? :coffee:


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: PostgreSQL Field Name "Laenge" ?

Beitrag von brandelh »

georg hat geschrieben:Warum kommt keiner auf die Frage, mal in die Dokumentation zu schauen? :coffee:
Weil es keine Frage sondern eine Lösung ist ;-) wahrscheinlich einfach zu einfach :D
Gruß
Hubert
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: PostgreSQL Field Name "Laenge" ?

Beitrag von georg »

Tja,


die "Frage" sollte eigentlich eine "Idee" sein, wahrscheinlich brauche ich jetzt erst mal einen Kaffee.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: PostgreSQL Field Name "Laenge" ?

Beitrag von AUGE_OHR »

georg hat geschrieben:In der Version 9.1 sind 63 Stellen signifikant, d.h. das System akzeptiert auch längere Namen, verwendet intern aber nur die ersten 63 Stellen.
aha, DANKE !!!
georg hat geschrieben:Warum kommt keiner auf die Frage, mal in die Dokumentation zu schauen? :coffee:
nun es ist wirklich nicht so das ich mich nicht "bemüht" hätte aber mir fehlte der "Suchbegriff"

ok dann kann ich wohl auch diesen Thread als [erledigt] markieren
gruss by OHR
Jimmy
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: PostgreSQL Field Name "Laenge" ? [erledigt]

Beitrag von georg »

Guten Morgen, Jimmy -


der Suchbegriff fehlte mir auch, daher habe ich beim CREATE TABLE angesetzt, denn dort musste sich ja ein Hinweis auf die zulässigen Namen für Felder finden lassen.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Antworten