kugelschreiber
Goto Top

Abfrage mit Dollarzeichen und Leerzeichen im Tabellen und Spaltennamen

Hallo Ihr Lieben,

ich habe folgend schwere Aufgabe.
Ich muss aus einer bestehenden Datanbank (MS-SQL) mit PHP Daten auslesen.
Dies klingt nicht schwer, wenn die Struktur und Benennung der Tabellen und Spaltennamen ordnungsgemäß und mit Struktur durchgeführt wurden wäre.
Diese ist nämlich nicht zu ändern

Mein Problem ist also folgendes:

Aus der Datenbank brauche ich momentan nur 4 Spalten aus 3 Tabellen auslesen. Diese lauten: (abgeschrieben aus MS Visual Studio)

dbo.test$GEN_SubCategory.ParentCode
dbo.test$GEN_SubCategory.Sequence No_
dbo.test$Vendor Value.Code

Wie Ihr sicherlich schon gesehen habt, befindet sich im Tabellennamen jeweils ein Dollarzeichen, welches ich escapen kann.
Was mache ich aber mit dem Leerzeichen in der dritten Tabelle bei "Vendor Value"

Meine momentane Abfrage lautet:
$SQL =
"SELECT TOP 100  
  dbo.test\$GEN_SubCategory.ParentCode,
  dbo.test\$GEN_SubCategory.Sequence No_,
  dbo.test\$Vendor Value.Vendor
FROM
  dbo.test\$GEN_SubCategory,
  dbo.test\$Vendor Value";  
Leider schlägt diese fehl. Nun dacht ich mir es mit:
[dbo.test\$Vendor Value].Vendor
zu versuchen. Dies scheitert aber auch.

Wer kann mir helfen?

Danke Gruß Kuli

Content-ID: 105785

Url: https://administrator.de/contentid/105785

Ausgedruckt am: 24.11.2024 um 20:11 Uhr

godlie
godlie 12.01.2009 um 16:24:56 Uhr
Goto Top
Hallo du könntest ja mal versuchen die "Feldbezeichnungen" unter `` zu setzen.

Also z.B.:
$SQL = 
"SELECT TOP 100   
 `dbo.test\$GEN_SubCategory.ParentCode`,
.....
 `dbo.test\$Vendor Value.Vendor`
FROM
.....
kugelschreiber
kugelschreiber 13.01.2009 um 09:21:22 Uhr
Goto Top
Hallo godie,

vielen Dank für Deine Hilfe aber auch diese Abfrage schlug fehl.
Ich probierte ebenfalls schon:
$SQL = 
"SELECT TOP 100   
[dbo.test\$Vendor Value.Vendor]
FROM
[dbo.test\$Vendor Value]";  

Leider scheitert diese (komischerweise) mit diesem Fehler:

Invalid object name 'dbo.test$Vendor Value'.

Scheint mir so, dass die Tabelle nicht existiert, aber sie ist definitiv vorhanden!
godlie
godlie 13.01.2009 um 09:31:19 Uhr
Goto Top
Ok ich habs jetzt mal nachgestellt, war ein kleiner Fehler von mir dabei.
$sql = 'SELECT *  
FROM `dbo`.`foo$ven value` ';  
Beachte hier die SingleQuotes so musst du nicht das $ quoten.

Probiers mal damit.
kugelschreiber
kugelschreiber 13.01.2009 um 10:42:09 Uhr
Goto Top
Hi.

ich habe das Problem mit folgenden Code lösen können.
 
$SQL = 
"SELECT TOP 100   
  dbo.[test\$Vendor Value.Vendor]
FROM
  dbo.[test\$Vendor Value]";  

Die eckige Klammer darf nicht das Schema umschliessen.

Gruß Kuli