SQL-Query: Feldnamen mit Leerzeichen ;o(

Für allgemeine Fragen zur Programmierung mit PureBasic.
Sosti
Beiträge: 17
Registriert: 04.02.2005 12:38

SQL-Query: Feldnamen mit Leerzeichen ;o(

Beitrag von Sosti »

Hallo Leute!

Ich habe für einen Kunden ein kleines Tool entwickelt, über welches man per ODBC auf Datenbanken zugreifen, ein SQL abarbeiten lassen kann und dann aus diesem Ergebnis ein XML erstellt.

Nun hat der, der das XML schlussendlich bekommt Probleme mit Leerzeichen in einigen Datenfeldern dieser DB.

Nun, aus dem "SELECT *" wurde eben ein "SELECT feld1, feld2, ". Ich habe es mit "SELECT feld 1 as feld1" mit "SELECT 'feld 1' as feld1" und "[feld 1] as feld1" versucht, leider erhalte ich jedesmal einen Bad Query ;o(

Wie könnte man das noch lösen?

Achja, ich hab nur per RemoteDesktop Verbindung auf den Zielrechner, auf dem meine Exe läuft. Ich hab keine Rechte, die Exe neu zu erstellen und dort hinzuladen.

Geht das nicht auch irgendwie per SQL?

lg, Sosti
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: SQL-Query: Feldnamen mit Leerzeichen ;o(

Beitrag von Kiffi »

Hallo Sosti,

wenn ich Dich richtig verstanden habe, dann funktioniert die SQL-Abfrage
und die anschliessende Generierung des XML grundsätzlich? Lediglich
derjenige, der das XML bekommt hat nun Probleme, es zu verarbeiten, weil
Du die Tabellennamen (eben auch den Namen mit einem Leerzeichen) im
XML gespeichert hast?

Schreib mal kurz, wenn dem so ist, dann haben wir eine gemeinsame
Verständigungsbasis. ;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

@kiffi
versteh ich anders

der Kunde kann mit einem vollständigen Select (select *) nicht umgehen
also selektiert sosti nur die relevanten Felder.

@sosti
mach mal lieber so

Code: Alles auswählen


Select [feldname] as 'Feldnamenbezeichnung' ,[feldname2] as 'feldnamenbezeichnung2'
der Feldname muss nur dann in die eckigen Klammern wenn
der ein Leerzeichen enthält oder Teil einer längeren Zuordung
ist like [server].[tabelle].[user].[tabelle]

Die Bezeichnung in EinzelHochkommata, wenn ein Leerzeichen enthalten
ist. Ich mach die Teile immer dadrum, weil es netter aussieht.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Beitrag von Rings »

so ein Dös-kram hab ich heut gemacht......

Code: Alles auswählen

   SQL = "Select Distinct A.L_R_NR , A.Anlage , B.RezeptNR, B.SortenNR as SortenNR ,C.Sorten_Ges , C.Bez1 as Bez1, C.Bez2 as Bez2 "
   SQL = SQL & "from Rezepte A,Rezepte_sorten B, MidSAR00 C"
   SQL = SQL & " where A.Anlage=520 and A.L_R_NR=B.RezeptNR and B.SortenNR=C.Sorten_Ges Order by C.Bez1"
Verknüpfung über 3 Tabellen.
und da waren alle Namen ohne Leerzeichen und Sonderzeichen,
ansonsten hätt ich's Rad geschlagen :freak:
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

<OT>
Rings hat geschrieben:Verknüpfung über 3 Tabellen.
gähn!

Code: Alles auswählen

SELECT CC_LBW.LBW, CC_CP_CLG.CP, CC_FT.ID, CC_FTLN.BN AS FT_BN, 
       CC_VLLN.BN AS VL_BN, CC_LBW.DT, CC_LBW.BMPN, CC_PN.BN AS PN_BN, CC_PN.ID AS PN_ID, 
       CC_LBW.BMCP, CC_LBW.Clearance, CC_VL.VL, CC_LBW_FV.FT_VALUE, CC_VL.VL_VALUE
FROM   CC_FT INNER JOIN
       CC_CLG_FT ON CC_FT.FT = CC_CLG_FT.FT INNER JOIN
       CC_LBW INNER JOIN
       CC_CP_CLG ON CC_LBW.CP = CC_CP_CLG.CP INNER JOIN
       CC_PN ON CC_LBW.PN = CC_PN.PN INNER JOIN
       CC_CLG_CLGX ON CC_CP_CLG.CLG = CC_CLG_CLGX.CLG ON 
       CC_CLG_FT.CLG = CC_CLG_CLGX.CLGX LEFT OUTER JOIN
       CC_FTLN ON CC_FT.FT = CC_FTLN.FT LEFT OUTER JOIN
       CC_VLLN INNER JOIN
       CC_LBW_FV INNER JOIN
       CC_VL ON CC_LBW_FV.FT_VALUE = CC_VL.VL ON CC_VLLN.VL = CC_VL.VL ON 
       CC_FT.FT = CC_LBW_FV.FT AND CC_LBW.LBW = CC_LBW_FV.LBW
ORDER  BY CC_LBW.LBW, FT_BN
10 Tabellen. Wer bietet mehr? ;-)

Grüße ... Kiffi

</OT>
a²+b²=mc²
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Beitrag von Rings »

ich kapitulier.
Die Feldnamen haben auch noch so
eindeutige Namen........

eh Feierabend nu.
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Könnt ihr mir mal verraten, welche Datenbankengine ihr nimmt?
Möchte nur mal wissen, was die Profis nehmen.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

dysti hat geschrieben:Könnt ihr mir mal verraten, welche Datenbankengine ihr nimmt?
Wir setzen hier den MS-SQL-Server ein (sowohl 2000 als auch 2005). Gerade
der neue SQL-Server hat ein paar nette Features.
Rings hat geschrieben:Die Feldnamen haben auch noch so
eindeutige Namen........
Die Schreibweise, Tabellen und Felder mit 2 Zeichen zu benennen, ist die
Erfindung meines Chefs. Da könnt Ihr mal sehen, womit ich mit tagtäglich
herumärgern muss. ;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Anmerkung:
Was die ExpressVersion gegenüber der MSDE angeht sollte man bei der
MSDE bleiben. Die neuen Einschränkungen sehen zwar erstmal gut aus,
aber sobald etwas Last auf den SQLExpress kommt, kackt das Teil
gnadenlos ab bzw. wird sehr langsam. Die MSDE ist unter gleichen
Umständen wesentlich performanter.

Aber die neuen Optionen besonders auch der Manager sind schon geil.

Aktuell setzen wir den SQLServer 2K auf unaktuellen Win2KServern auf
aktuellen XEON-Maschinen ein.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Antworten