![]() |
Datenbank: oracle • Version: 9 • Zugriff über: ADO
ADO stolpert über chr(13) chr(10)
Hallo zusammen
bei folgendem Select
Code:
bekomme ich folgende Fehlermeldung.
select feld1,chr(13)||chr(10)||'mein text'||Feld2
from MyData Fehler bei einem aus mehreren Schritten bestehenden Vorgang. Prüfen Sie die einzelnen Statuswerte. so geht's problemlos
Code:
Über ODBC geht es übrigens auch mit chr(13)||chr(10).
select feld1,'mein text'||Feld2
from MyData wißt Ihr woran sich da der Treiber verschluckt? Gruß K-H P.S. der ADO-Provider kommt von Oracle |
AW: ADO stolpert über chr(13) chr(10)
Code:
lief bei mir problemlos (Oracle 9 Client, Oracle 10 DB), sowohl über den Oracle-Provider als auch über den Oracle ODBC Treiber.
SELECT
MAN, CHR(13)||CHR(10)||'BLA'||AK AS TEST FROM MYTABLE Vllt. liegt das Problem woanders? Versuch doch mal irgendein anderes Zeichen: select feld1,chr(34)||'mein text'||Feld2 |
AW: ADO stolpert über chr(13) chr(10)
Du hast vermutlich eine impliziteKonvertierung in Feld2. Das ist vielleicht kein Textfeld.
Damit man über das gleiche redet, läuft das bei Dir?
Code:
-- text field
select dummy, chr(13)||chr(10)||'mein text'||dummy from dual; -- text function select dummy, chr(13)||chr(10)||'mein text'||user from dual; -- date function select dummy, chr(13)||chr(10)||'mein text'||sysdate from dual; -- null select dummy, chr(13)||chr(10)||'mein text'||NULL from dual; -- decimal select dummy, chr(13)||chr(10)||'mein text'||99.82 from dual; -- integer select dummy, chr(13)||chr(10)||'mein text'||99 from dual; -- integer function select dummy, chr(13)||chr(10)||'mein text'||instr(dummy, 'X') from dual; |
AW: ADO stolpert über chr(13) chr(10)
zunächst einmal vielen Dank!
sobald ich das
Code:
lösche geht's wieder! (so hab ich mir für's erste geholfen.)
chr(13)
@jobo Mein Enthusiasmus hält sich in Grenzen, aber jede Deiner Abfragen funktioniert! Hier mal mein Original (nach mehreren Tests gestrippt) :
Code:
CaseKey und CaseNameKey sind numerisch.
SELECT 'update casename set Namekey=20230734 where CaseKey='||Cases.CaseKey||' and casenamekey='||caseassis.casenamekey||';'||chr(13)||chr(10)
Gruß K-H |
AW: ADO stolpert über chr(13) chr(10)
dann versuch es doch mit expliziter Konvertierung:
Code:
bzw.
select dummy, chr(13)||chr(10)||'mein text'||to_char(99)
from dual;
Code:
SELECT
'update casename set Namekey=20230734 ' || ' where CaseKey='||to_char(Cases.CaseKey)'|| ' and casenamekey='||to_char(caseassis.casenamekey)||'; '||chr(13)||chr(10) from ... |
AW: ADO stolpert über chr(13) chr(10)
ich habe einmal den Debugger angeworfen, es sieht so aus als würde es hier knirschen:
Delphi-Quellcode:
PropList.count ist 0!
Unit ADODB
.... function PropertyExists(const PropList: ADOInt.Properties; const PropName: WideString): Boolean; var I: Integer; begin for I := PropList.Count - 1 downto 0 do <<<<<<<<<<<<<<<<<< if PropList[I].Name = PropName then begin Result := True; Exit; end; Result := False; end; und hier geht's dann weiter
Delphi-Quellcode:
Gruß
Unit System
function _CheckAutoResult(ResultCode: HResult): HResult; {$IF Defined(PIC) or Defined(PUREPASCAL)} begin if ResultCode < 0 then begin if Assigned(SafeCallErrorProc) then SafeCallErrorProc(ResultCode, Pointer(-1)); // loses error address Error(reSafeCallError); end; Result := ResultCode; end; {$ELSE} asm TEST EAX,EAX <<<<<<<<<<<<<<<<<<<<<<<<<<<<< JNS @@2 MOV ECX,SafeCallErrorProc TEST ECX,ECX JE @@1 MOV EDX,[ESP] CALL ECX @@1: MOV AL,reSafeCallError JMP Error @@2: end; {$IFEND} K-H Nachtrag: Ich bin einen halben Schritt weiter gekommen. Es hat wohl etwas mit der Menge der '||' zu tun. Folgende Abfrage liefert den Fehler
Code:
folgende nicht
select 'Insert into casename (CASENAMEKEY,CASEKEY,NAMETYPEKEY,NAMEKEY,ARCHIVED)'||
' values (nextkey.nextval,'||cases.casekey||',105,38047483,0);'||' CRLF' ,cases.casekey ,cases.casereference ,cases.CaseTypeKey ,SachB.Name,IndSachb.FirstName ,Assis.Name
Code:
select 'Insert into casename (CASENAMEKEY,CASEKEY,NAMETYPEKEY,NAMEKEY,ARCHIVED)',
' values (nextkey.nextval,'||cases.casekey||',105,38047483,0);'||' CRLF' ,cases.casekey ,cases.casereference ,cases.CaseTypeKey ,SachB.Name,IndSachb.FirstName ,Assis.Name |
AW: ADO stolpert über chr(13) chr(10)
Welche Client Version hast Du genau? 9.?.?.?
Was ist mit to_char? |
AW: ADO stolpert über chr(13) chr(10)
@jobo
Es ist die Vers 9.2 Ich hab's raus bekommen, es liegt an der Stringlänge für den Ausdruck. Sobald diese 125 Zeichen überschreitet kommt diese besch. Fehlermeldung. Das hier ist die Obergrenze:
Code:
ein Zeichen mehr und Schluß ist.
select '0123456789+123456789+123456789+123456789+123456789+123456789+123456789+123456789+123456789+123456789+123456789+123456789+1234'
from Dual; select '0123456789+123456789+123456789+123456789+123456789+123456789+123456789+123456789+123456789+12345'||to_char(sysdate,'YYYYMMDD') from Dual;
Code:
Das wiederum geht.
Select 125Byte,125Byte,125Byte from ...
Vielen Dank! K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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