AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Unicode Zeichen in Query-Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

Unicode Zeichen in Query-Komponente

Ein Thema von hsdkit · begonnen am 23. Mär 2004 · letzter Beitrag vom 3. Sep 2005
 
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Unicode Zeichen in Query-Komponente

  Alt 3. Sep 2005, 18:47
Schau Dir in ADOdb.pas die beiden Funktionen 'ADOTypeToFieldType' und 'FieldTypeToADOType' an. In Letzerem war der Fehler, glaub ich, drin. Aber das ist auf den ersten Blick zu sehen: Check die Case of und die Abbildung von ftWideChar zu adWChar. Ich habs natürlich schon korrigiert, aber ich meine, der Bug war in FieldTypeToADOType, da stand nämlich
Delphi-Quellcode:
...
  Case FieldType Of
...
    ftString, ftWideChar : Result := adVarChar;
...
und richtig muss es ja heissen:
Delphi-Quellcode:
...
  Case FieldType Of
...
    ftString : Result := adVarChar;
    ftWideChar : Result := adVarWChar;
...
Falls Du Stored Procedures mit NVarChar Parametern hast, bekommst Du den von mir schon beschriebenen Bug: Übergabe z.B. von 'Foo' an einen NVarChar(10) Parameter landet in SQL als N'Foo ' (also mit Leerzeichen auf 10 Zeichen aufgefüllt). Dieser Bug ist wohl in ADO selbst. Da hilft dann nur ein Workaround.

Melde Dich, falls DAS bei Dir auftritt. Dann musst Du im OnWillExecute-Ereignis der TADOConnection den ADO-Typen des Items per Hand setzen:
Ich habe eine Stringlist von Parameternamen, die ich umbiegen muss, und dann geht's so:
Delphi-Quellcode:
Var
  i : Integer;

Begin
  with Command.Parameters do
    For i:=0 to Count - 1 do
      If fWideCharParams.IndexOf(AnsiUpperCase (Item [i].Name))<>-1 Then
        Item [i].Type_ := adVarWChar;
end;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:35 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