Seite 1 von 1
SQL-Query: Feldnamen mit Leerzeichen ;o(
Verfasst: 08.02.2007 12:36
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
Re: SQL-Query: Feldnamen mit Leerzeichen ;o(
Verfasst: 08.02.2007 14:53
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
Verfasst: 08.02.2007 15:58
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.
Verfasst: 08.02.2007 17:09
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

Verfasst: 08.02.2007 17:56
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>
Verfasst: 08.02.2007 18:11
von Rings
ich kapitulier.
Die Feldnamen haben auch noch so
eindeutige Namen........
eh Feierabend nu.
Verfasst: 09.02.2007 09:17
von dysti
Könnt ihr mir mal verraten, welche Datenbankengine ihr nimmt?
Möchte nur mal wissen, was die Profis nehmen.
Verfasst: 09.02.2007 10:07
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
Verfasst: 09.02.2007 12:54
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.