Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Große Texte mit Sonderzeichen in Datenbank speichern (https://www.delphipraxis.net/119827-grosse-texte-mit-sonderzeichen-datenbank-speichern.html)

emsländer 1. Sep 2008 18:41

Datenbank: MSSQL • Version: 2005 • Zugriff über: TAdoquery

Große Texte mit Sonderzeichen in Datenbank speichern
 
Moin,

Habe da noch ein großes Problem.
Das Datenfeld ist Text und dort möchte ich eine XML-Datei "RAW" reinschieben.
Leider klappt das nicht, weil dort auch Kommas, Sonderzeichen und Klammern etc. drin sind.

Wer hat da eine Idee?

Gruss

EL

Bernhard Geyer 1. Sep 2008 18:54

Re: Große Texte mit Sonderzeichen in Datenbank speichern
 
Mit Paramtrisierten Abfragen sollte das kein Problem darstellen.
Besser aber statt text ntext nehmen um nicht auf Nicht-Westeuropäischen Systemen Probleme zu bekommen.

Alternativ gibts noch eine XML-Datentyp beim MS SQL Server. Hab damit aber noch nix gemacht.

emsländer 2. Sep 2008 09:06

Re: Große Texte mit Sonderzeichen in Datenbank speichern
 
Moin,

acuh parametrisiert klappt es nicht:

Delphi-Quellcode:
function insert_antrag(code, user_code, nachricht, dossier, f_xml,timestamp, zuAkte, kunden_ip, fdd_ip, progversion : string) : string;

var stmp : string;
_query : TSQLQuery;


begin
  try
    _query := TSQLquery.Create(nil);
    _query.SQLConnection := fddservice.SQLConnFDD;
    with _query do begin
      insert;
      sql.text := 'insert into antraege(code,user_code,nachricht,dossier,xml,timestamp,zu_Akte,kundenip,fddip,progversion) values'+ '(:_code,:_usercode,:_nachricht,:_dossier,:_xml,:_timestamp,:_zuAkte,:_kundenip,:_fddip,:_progversion)';

 

      ParamByName('_code').AsString := code;
      ParamByName('_usercode').AsString := code;
      ParamByName('_nachricht').AsString := nachricht;
      ParamByName('_dossier').AsString := dossier;
      ParamByName('_xml').AsWideString := f_xml;
      ParamByName('_timestamp').AsString := timestamp;
      ParamByName('_zuAkte').Asinteger := strtoint(zuAkte);
      ParamByName('_kundenip').AsString := kunden_ip;
      ParamByName('_fddip').AsString := fdd_ip;
      ParamByName('_progversion').AsString := progversion;
      ExecSQL;
      sleep(100);
      result:='';
    end;
  except
    result('Nix da - klappt nicht');
  end;
  freeandnil(_query);
end;
Es hakt wie es aussieht an "_nachricht" (dort sind z.B. %20,0D0A etc. drin) und an _xml .. (dort sind massig Sonderzeichen)
Die Table nachricht ist Typ ntext, xml ist Typ xml.

Des Weiteren: Wie kann ich da eine Fehlerabfrage realisieren?

Gruss

EL

Bernhard Geyer 2. Sep 2008 09:10

Re: Große Texte mit Sonderzeichen in Datenbank speichern
 
Welcher Fehlermeldung kommt den?

mkinzler 2. Sep 2008 09:13

Re: Große Texte mit Sonderzeichen in Datenbank speichern
 
Versuch mal
Delphi-Quellcode:
ParamByName('_nachricht').Value := nachricht;

emsländer 2. Sep 2008 09:17

Re: Große Texte mit Sonderzeichen in Datenbank speichern
 
Zitat:

Zitat von Bernhard Geyer
Welcher Fehlermeldung kommt den?

Keine .... ist ein Dienst. Daher suche ich eine Möglichkeit, an dieser Stelle den Fehlertext zu "lesen".

Gruss

EL

Bernhard Geyer 2. Sep 2008 09:18

Re: Große Texte mit Sonderzeichen in Datenbank speichern
 
Zitat:

Zitat von emsländer
Keine .... ist ein Dienst. Daher suche ich eine Möglichkeit, an dieser Stelle den Fehlertext zu "lesen".

Aber in eine Logdatei schreiben sollte kein Problem darstellen.
Ohne genaue Fehlermeldung können wir hier alle unsere Glaskugeln auspacken.

emsländer 2. Sep 2008 09:32

Re: Große Texte mit Sonderzeichen in Datenbank speichern
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von emsländer
Keine .... ist ein Dienst. Daher suche ich eine Möglichkeit, an dieser Stelle den Fehlertext zu "lesen".

Aber in eine Logdatei schreiben sollte kein Problem darstellen.
Ohne genaue Fehlermeldung können wir hier alle unsere Glaskugeln auspacken.

Wie kann ich in diesem "Code-Konstrukt" die SQL-Fehlermeldungen auslesen?


Gruss

EL

Bernhard Geyer 2. Sep 2008 09:34

Re: Große Texte mit Sonderzeichen in Datenbank speichern
 
Zitat:

Zitat von emsländer
Wie kann ich in diesem "Code-Konstrukt" die SQL-Fehlermeldungen auslesen?

hast du doch schon in einem anderen Thread gefragt.
Verwende doch die dort vorgestellten Lösungen.

emsländer 2. Sep 2008 09:36

Re: Große Texte mit Sonderzeichen in Datenbank speichern
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von emsländer
Wie kann ich in diesem "Code-Konstrukt" die SQL-Fehlermeldungen auslesen?

hast du doch schon in einem anderen Thread gefragt.
Verwende doch die dort vorgestellten Lösungen.

Genau das funktioniert dort nicht, weil das nicht ADO ist

Gruss

EL


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 Uhr.
Seite 1 von 2  1 2      

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