![]() |
Datenbank: Interbase • Zugriff über: SQL
Umlaute in Interbase
Guten Tag zusammen (und danke Chaho für die bisherige Hilfe)
ich habe eine Datenbankanwendung geschrieben die eine Art benutzerverwaltung darstellt. Nun gelingt es mir in IB Expert auch Namen mit Umlauten zu schreiben. Sobald ich jedoch das ganze im Quellcode versuche bekomme ich diese seltsame Fehlermeldung: 1Ausführung misslungen. arithmetic exception, numeric overflow, or string truncation Cannot transliterate character between character sets Ich nutze folgenden Quellcode um in die Datenbank zu schreiben:
Delphi-Quellcode:
bdpDataAdapter1.Active := False;
BdpCommand1.CommandText := 'INSERT Into CUSTOMER (ID_KEY,PREIS_ID,FIRMA,STRASSE,PLZ,ORT,TELEFON,FAX,MAIL) VALUES(' + Record_Count_STR + ', ' + PREIS_ID + ', ' + Strich + FIRMEN_NAME + Strich + ', ' + Strich + STRASSE + Strich + ', ' + POSTLEITZAHL + ', ' + Strich + ORT + Strich + ', ' + Strich + TELEFON + Strich + ', ' + Strich + FAX + Strich + ', ' + Strich + MAIL + Strich + ') '; try SAVED := BdpCommand1.ExecuteNonQuery; except on E: Exception do Begin Response.Write(E.Message); ALL_OK := FALSE; end; end; if ALL_OK then Begin bdpDataAdapter1.Active := TRUE; Write_New_Mitarbeiter( FIRMEN_NAME ); Load_Session := FALSE; end;; in der Variable STRICH sind die Hochkommatas für die Strings enthalten. Weiß jemand wie ich auch im Quelltext die Umlaute schreiben kann? Vielen Dank Michael [edit=Luckie]Delphi-Tags gesetzt. Beim nächsten mal bitte selber machen. Danke. Mfg, Luckie[/edit] |
Re: Umlaute in Interbase
1. Frage : ist die DB als Dialect 3 angelegt ?
Die Hauptfrage ist allerdings folgende : Wer ist zuständig fürs abspeichern ? Dein Programm oder die DB ? Wo können Fehler auftreten und wann merkt man die ? Ist es tatsächlich gut, ein SQL-Statement im Source zu haben, oder eher solche Konstrukte :
Delphi-Quellcode:
Die dahinter steckende Stored Procedure hat folgende Vorteile : im Source kann ich mich mit ''""'"'"'"" Quoted ??? nicht mehr verzetteln (zumindest mit Dialect 3). Vor allem aber ist es möglich die SP (vor der Verwendung im Programm) in IBExpert zu testen. Und wenn sie dann geht, dann kann man sie verbauen. Auch Dein im Source zusammengesetztes Insert würde ich zuerst mal in IBExpert testen. Wenns sein muß, dann notfalls 1:1 per C+P im Source anpassen. Eine SP anzulegen ist IMHO aber immer besser bzw. sicherer.
PreisSP.ParamByName('ID_KUNDE').AsInteger := StrToInt (idkunde);
PreisSP.ParamByName('ID_ART').AsInteger := StrToInt (idart); ... PreisSP.ExecProc; Leider ist so was immer noch sehr beliebt (zumindest hier) : z.B. baut man ein Flugzeug und wenn es abstürzt, dann guckt man mal, warum. Anstatt vorher alle Einzelteile zu überprüfen und das Teil dann erst zusammenzubauen. |
Re: Umlaute in Interbase
Danke für die Hilfe, leider ist es so das ich mit Stored Procedure noch nichts gemacht habe, wie rufe ich sie unter .net auf? Es wäre nett wenn Du mir ein wenig auf die Sprünge helfen kannst.
Gruß Michael |
Re: Umlaute in Interbase
.NET spielt dabei wohl keine Rolle. Wie man sie aufruft steht weiter oben. Probiere es in IBExpert einfach aus. Übung macht immer noch den Meister. :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz