Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VB6 SQL Umgang mit Feld Postleitzahl als Integer - keine führende 0 möglich

Frage Entwicklung VB for Applications

Mitglied: boesi666

boesi666 (Level 1) - Jetzt verbinden

10.06.2012 um 17:50 Uhr, 3901 Aufrufe, 8 Kommentare

sql und die postleitzahlen ...

spreche unter vb6 mittels sql befehlen eine access db an unf habe hier schon lange eine spalte PLZ als Typ Integer in der Datenbank. Ursprünglich habe ich das posleitzhalen feld als integer erstellt, da ich auch mal auswertungen machen wollte wo der postleitzahlenbereich hätte zwischen einem Bereich X und Y hätte sein können und das als Typ integer echt klasse war.

Nun aber schon lange das vernachlässigte Problem, dass wenn mal eine Postleitzhal beim anlegen mit einer 0 anfängt, diese dann nicht so gespeichert wird, da der datenbank feld typ ja integer und nicht string ist.

wie geht ihr mit so einem feld um? legt ihr das immer als string an?, wenn ja:
-wie macht man dann solche sql abfragen mit select blabla where postleitzahl > XXXX and Postleitzahl < YYYYY ??
-kann man solch eine spalte wo schon werte drin sind nachträglich ändern/umwandeln?
Mitglied: wiesi200
10.06.2012 um 18:43 Uhr
Hallo,
Im großen und ganzen ja das ist ein string
Bitte warten ..
Mitglied: rubberman
10.06.2012 um 18:50 Uhr
Hallo boesi666.

Ich verstehe das Problem nicht. Wenn du die PLZ als Integer ablegst, fehlen logischerweise führende Nullen. Welches Problem hast du damit? Entsprechende Abfragen dann eben auch als Integerwert. Und falls du mal für eine Ausgabe (damit es schöner aussieht) die Nullen brauchst hängst du sie (nach Konvertierung/Casting zum String) wieder davor. So what?

Grüße
rubberman
Bitte warten ..
Mitglied: wiesi200
10.06.2012 um 19:14 Uhr
Das Problem ist wenn man's als Integer macht sind Ausländische Codes. Auch wenn's im Moment vielleicht nicht gebraucht wird. Wer kennt die Zukunft? Mann würde sich hier die Erweiterungsmöglichkeiten nehmen.
Bitte warten ..
Mitglied: boesi666
10.06.2012 um 19:43 Uhr
Zitat von rubberman:
... Welches Problem
hast du damit? Entsprechende Abfragen dann eben auch als Integerwert. Und falls du mal für eine Ausgabe (damit es
schöner aussieht) die Nullen brauchst hängst du sie (nach Konvertierung/Casting zum String) wieder davor. So what?

Grüße
rubberman

ja problem ist ja genau wenn ich dann die plz mal wieder zur anzeige auf rechnung, etc. brauche, dann solche städte wo die plz mit 0 beginnt dann ja nicht korrekt ausgegeben werden.

statt 01234 würde dann fälschlicherweise 1234 nur ausgegeben werden.

kann man das im select befehl bei einer sql abfrage mit so nem iif befehl automatisch mit auffüllen lassen? wenn z.b. die plz nur 4 ziffern hat oder kleiner 10000 ist ?
Bitte warten ..
Mitglied: boesi666
10.06.2012 um 19:46 Uhr
Zitat von wiesi200:
Das Problem ist wenn man's als Integer macht sind Ausländische Codes. Auch wenn's im Moment vielleicht nicht
gebraucht wird. Wer kennt die Zukunft? Mann würde sich hier die Erweiterungsmöglichkeiten nehmen.

ob das hierbei ginge mit einem einzigen sql befehl das plz feld von integer ins beispielsweise string(20) umzuverw3andeln OHNE die bestehenenden einträge zu gefährden?

z.B. so :
ALTER table Kunden ALTER COLUMN plz Text(20)
Bitte warten ..
Mitglied: rubberman
10.06.2012 um 20:29 Uhr
Hallo boesi666.

Da du das in einer Access Datenbank tun willst, kannst du es per Hand an einer neuen Datenbanktabelle durchkauen. Natürlich kannst du das Format der Spalte ändern (einfach in die Entwurfsansicht gehen und probieren). Das bringt dir aber im Zweifelsfall nichts für die bereits vorhandenen Daten. Immerhin fehlt da die vorangestellte Null im Wert und die wird auch nicht wie durch Zauberhand wieder erscheinen.

Grüße
rubberman
Bitte warten ..
Mitglied: rubberman
10.06.2012 um 20:35 Uhr
Hallo boesi666,

entweder im SQL Statement selbst (zB.: addiere 100000, caste zum String, verwende die rechten 5 Stellen), oder in deinem VB Code.

Grüße
rubberman
Bitte warten ..
Mitglied: dog
10.06.2012, aktualisiert um 21:03 Uhr
Also mir fällt keine sinnvolle Verwendung von plz > X and plz < Y ein.
PLZs sind ja regional untergliedert:
3xxxx Mitteldeutschland
34xxxx Großraum Kassel
usw.

Also wäre eine Sinnvolle Abfrage nach PLZ um z.B. Leute aus einer Region zu finden plz LIKE '34%'.

Natürlich kann man sich damit auch prima in den Fuß schießen (genauso wie bei Zahlen auch), da z.B. 37xxx und 99xxx direkt aneinander liegen was aus der Zahl nicht ersichtlich ist.
Wenn du also Abfragen nach Region machen willst brauchst du viel eher Geo-Daten.
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Datenbanken
Microsoft SQL Server Feld mit Trigger aktualisieren (3)

Frage von ursus57 zum Thema Datenbanken ...

Windows Server
gelöst SQL-Server Datenbanksicherung inkl. Benutzerberechtigungen dafür? (4)

Frage von 1410640014 zum Thema Windows Server ...

Outlook & Mail
gelöst Outlook 2013 Von Feld in alten Entwürfen (2)

Frage von Xartor zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Empfehlung günstiges ADSL2+ nur Modem (10)

Frage von TimMayer zum Thema Router & Routing ...

Server-Hardware
Lenovo Server System X 3650 M5 Festplatten (9)

Frage von Hendrik2586 zum Thema Server-Hardware ...