Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   IBExpert: Zeilenumbruch in String (https://www.delphipraxis.net/188363-ibexpert-zeilenumbruch-string.html)

nahpets 24. Feb 2016 14:18

AW: IBExpert: Zeilenumbruch in String
 
Zitat:

Zitat von Lemmy (Beitrag 1331233)
How to add a newline (CRLF) to the string from SQL?

http://www.firebirdfaq.org/faq132/

Funktioniert, soweit ich das mitbekommen habe, aber nur in Funktionen/Prozeduren und nicht in reinem SQL.

SQL-Code:
select Spalte1||ASCII_CHAR(13)||ASCII_CHAR(10)||Spalte2 from tabelle;
geht nicht.
Code:
---------------------------
Fehler
---------------------------
[ODBC Firebird Driver][Firebird]Dynamic SQL Error
SQL error code = -804
Function unknown
ASCII_CHAR

select Spalte1||ASCII_CHAR(13)||ASCII_CHAR(10)||Spalte2 from tabelle;

Lemmy 24. Feb 2016 14:52

AW: IBExpert: Zeilenumbruch in String
 
Code:
Select 'Hallo'||ASCII_CHAR(13)||ASCII_CHAR(10)||'Welt' from rdb$database
funzt wunderbar. IBExpert kann das halt nur nicht darstellen. Kopier den ZHellenwert raus und füg den in Notepad und co ein und schon klappt es...


Äh.... Moment...

Zitat:

[ODBC Firebird Driver][Firebird]Dynamic SQL Error
habe ich das irgend wo überlesen? Wo kommt auf einmal der ODBC Treiber her? Dein SQL oben funktioniert wenn ich die Spalten/Tabellennamen anpasse ohne Probleme...

nahpets 24. Feb 2016 15:31

AW: IBExpert: Zeilenumbruch in String
 
@Lemmy
Na, wenn's mal klappt und mal nicht, dann kommt es wohl nicht nur auf die Datenbank an, sondern auch noch auf den Weg, über den man auf die Datenbank zugreift.

Habe das SQL halt mit 'nem Programm getestet, das über ADO auf alle Datenbanken zugreifen kann, für die es eine passende Schnittstelle (ODBC-Treiber...) gibt.

War halt der (irrigen?) Annahme, das SQL eben SQL ist und ein SQL-Statement entweder immer funktioniert oder eben auch nicht, unabhängig davon, über welchen Weg man es an die Datenbank schickt.

Bekomme für Dein Statement diese Meldung:
Code:
[ODBC Firebird Driver][Firebird]Dynamic SQL Error
SQL error code = -804
Function unknown
ASCII_CHAR

Select 'Hallo'||ASCII_CHAR(13)||ASCII_CHAR(10)||'Welt' from rdb$database
Rufe ich das Statement über FlameRobin direkt auf der Datenbank auf, dann gibt es diese Meldung:
Code:
Starting transaction...
Preparing query: Select 'Hallo'||ASCII_CHAR(13)||ASCII_CHAR(10)||'Welt' from rdb$database

Error: *** IBPP::SQLException ***
Context: Statement::Prepare( Select 'Hallo'||ASCII_CHAR(13)||ASCII_CHAR(10)||'Welt' from rdb$database
 )
Message: isc_dsql_prepare failed

SQL Message : -804
An error was found in the application program input parameters for the SQL statement.

Engine Code   : 335544569
Engine Message :
Dynamic SQL Error
SQL error code = -804
Function unknown
ASCII_CHAR


Total execution time: 0.125s
FireBird-Version:
Code:
This product created by the Firebird - All Copyright (c) retained by the individual contributors - original code Copyright (c) 2000 Inprise Corporation and predecessors.

FirebirdSQL Project
Firebird SQL Server
FileVersion WI-V2.0.0.12748

p80286 24. Feb 2016 16:03

AW: IBExpert: Zeilenumbruch in String
 
Na die Aussage ist ja eindeutig
"Function unknown ASCII_CHAR"

Entweder fehlt Dir der Richtige Bezug System.ASCII_CHAR oder was auch immer notwendig ist, oder die Funktion gibt es schlicht und einfach nicht. Oder hat sie bei dir einen anderen Namen? CHR() z.B.?

Zitat:

War halt der (irrigen?) Annahme, das SQL eben SQL ist und ein SQL-Statement entweder immer funktioniert oder eben auch nicht, unabhängig davon, über welchen Weg man es an die Datenbank schickt.
Zunächst einmal hat jede Datenbank-Version eine eigene Vorstellung davon was (richtiges)SQL ist und wenn Du als Oberfläche einen Interpreter hast, ist es auch etwas anderes wenn Du direkt per TQuery.SQL.Text Deine Abfrage losschickst.

(versuch mal
Code:
select * from <TabName> where <Name>='Firma & Co. AG'
Da gibt es die eine oder andere Oberfläche, die & als Einleitung für einen zu übergebenden Parameter versteht)


Gruß
K-H

Lemmy 24. Feb 2016 16:10

AW: IBExpert: Zeilenumbruch in String
 
Zitat:

Zitat von nahpets (Beitrag 1331244)
@Lemmy
Na, wenn's mal klappt und mal nicht, dann kommt es wohl nicht nur auf die Datenbank an, sondern auch noch auf den Weg, über den man auf die Datenbank zugreift.

oder an was anderem :-)

Zitat:

Zitat von nahpets (Beitrag 1331244)
FirebirdSQL Project
Firebird SQL Server
FileVersion WI-V2.0.0.12748[/CODE]

http://www.firebirdsql.org/refdocs/l...scii_char.html

der Link wurde schon weiter oben gepostet: ASCII_CHAR funzt erst am Firebird 2.1, sprich den gibt es bei dir wirklich nicht.

nahpets 24. Feb 2016 16:27

AW: IBExpert: Zeilenumbruch in String
 
Zitat:

Zitat von p80286 (Beitrag 1331247)
Na die Aussage ist ja eindeutig
"Function unknown ASCII_CHAR"

Entweder fehlt Dir der Richtige Bezug System.ASCII_CHAR oder was auch immer notwendig ist, oder die Funktion gibt es schlicht und einfach nicht. Oder hat sie bei dir einen anderen Namen? CHR() z.B.?

Gibt's wirklich nicht, hab' 'ne zu alte FireBird-Version.

Zitat:

Zitat von p80286 (Beitrag 1331247)
Zitat:

War halt der (irrigen?) Annahme, das SQL eben SQL ist und ein SQL-Statement entweder immer funktioniert oder eben auch nicht, unabhängig davon, über welchen Weg man es an die Datenbank schickt.
Zunächst einmal hat jede Datenbank-Version eine eigene Vorstellung davon was (richtiges)SQL ist und wenn Du als Oberfläche einen Interpreter hast, ist es auch etwas anderes wenn Du direkt per TQuery.SQL.Text Deine Abfrage losschickst.

(versuch mal
Code:
select * from <TabName> where <Name>='Firma & Co. AG'
Da gibt es die eine oder andere Oberfläche, die & als Einleitung für einen zu übergebenden Parameter versteht)


Gruß
K-H

Schon klar, das SQL nicht zwingend = SQL ist, jede Datenbank hat da so ihre eigenen "Schmankerl", die von Version zu Version auch nicht zwingend gleich bleiben ;-)

Meine Oberfläche ist kein Interpreter. Eingegebene SQL-Statements werden 1:1 an TAdoQuery.SQL.Text weitergegeben.

@Lemmy
Bei der Version hätte ich ja ruhig selber mal ein bisserl genauer hinschauen können :-(

Lemmy 24. Feb 2016 16:32

AW: IBExpert: Zeilenumbruch in String
 
Zitat:

Zitat von nahpets (Beitrag 1331250)
@Lemmy
Bei der Version hätte ich ja ruhig selber mal ein bisserl genauer hinschauen können :-(

oder sie früher angeben :-)

Schau mal ob in den gängigen UDFs was vergleichbares drin steckt. Und solltest Du dir überlegen auf die 2.1 oder neuer zu wechseln, schau dir bitte vorher die Hinweise zum Umstieg an. Normal ist der Umstieg einfach, aber gerade von 2.0 auf was neueres gibt es ein paar wichtige Dinge zu beachten...

Jumpy 24. Feb 2016 16:50

AW: IBExpert: Zeilenumbruch in String
 
Wenn ich den SQL-String doch in Delphi zusammenbaue, kann ich doch das Problem umgehen ob die CHR() Funktion in der einen DB CHR() in der anderen CHAR() oder ASCII_CHAR() heißt, oder hab ich das Problem falsch verstanden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
Seite 2 von 2     12   

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