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-Key: 105785

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

Printed on: April 25, 2024 at 09:04 o'clock

Member: godlie
godlie Jan 12, 2009 at 15:24:56 (UTC)
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
.....
Member: kugelschreiber
kugelschreiber Jan 13, 2009 at 08:21:22 (UTC)
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!
Member: godlie
godlie Jan 13, 2009 at 08:31:19 (UTC)
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.
Member: kugelschreiber
kugelschreiber Jan 13, 2009 at 09:42:09 (UTC)
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