AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Ungültiger Spaltenname 'test'
Thema durchsuchen
Ansicht
Themen-Optionen

Ungültiger Spaltenname 'test'

Ein Thema von daniel71 · begonnen am 1. Okt 2007 · letzter Beitrag vom 2. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
daniel71

Registriert seit: 27. Sep 2007
38 Beiträge
 
Delphi XE Professional
 
#1

Ungültiger Spaltenname 'test'

  Alt 1. Okt 2007, 22:31
Datenbank: MSSQL Server • Zugriff über: ADOConnection / ADOQuery
Hallo

Ich bin da ein bisschen am rumexperimentiern und komme auf keinen grünen zweig.

Diese Abfrage:

Delphi-Quellcode:
y:= 'test';

with ADOQuery1 do Begin
  SQL.Text:= 'SELECT '+
              '* '+
             'FROM '+
              '[GROUP_] '+
             'WHERE '+
              'NAME_ = "'+y+'" ';
  Open;
end; x:= ADOQuery1.RecordCount;
Ergibt mir eine Exeption: Ungültiger Spaltenname 'test'

Die Tabelle "GROUP_" hat die Spalten:
ID
NAME_
TYPE_
GROUPI4_ID
...


Die hersteller der Datenbank haben von Paradox (BDE) auf MSSQL gewechselt , ich möchte mein tool das logischer weise so nicht mehr funktioniert umschreiben. Leider habe ich noch nicht soviel erfahrung mit ADO.

Gruss Daniel
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Ungültiger Spaltenname 'test'

  Alt 1. Okt 2007, 22:32
Die " sind in SQL Spaltenstring-Begrenzer. Versuch es statt dessen mal mit einem ', also '' im String.
  Mit Zitat antworten Zitat
daniel71

Registriert seit: 27. Sep 2007
38 Beiträge
 
Delphi XE Professional
 
#3

Re: Ungültiger Spaltenname 'test'

  Alt 1. Okt 2007, 22:39
Hallo Dax

Vielen Dank, klapt wunderbar
  Mit Zitat antworten Zitat
daniel71

Registriert seit: 27. Sep 2007
38 Beiträge
 
Delphi XE Professional
 
#4

Re: Ungültiger Spaltenname 'test'

  Alt 1. Okt 2007, 22:55
Hallo

Habe mich zu früh gefreut...

Es gibt zwar keine exeption mehr, aber ein ergebniss auch nicht

"ADOQuery1.RecordCount;" ergibt 0, müste aber 1 ergeben.

'NAME_ = ''+y+'' '; kann mir jemand diese query richtig aufschreiben?
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Ungültiger Spaltenname 'test'

  Alt 1. Okt 2007, 23:01
Hallo,

versuch mal 'NAME_ = ' + QuotedStr('y');
Das vermindert zumindest den Verhau mit den Anführungszeichen


Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: Ungültiger Spaltenname 'test'

  Alt 1. Okt 2007, 23:12
Zitat von daniel71:
'NAME_ = ''+y+'' ';
Du meinst sicher'NAME_ = '''+y+''' '; Um ein ' in einen String zu bringen, Bedarf es zweier '' im String, wenn das ' dann am Anfang/Ende des Strings sein soll, eben drei ': der Stringbegrenzer und das '' für ein ' im String.
  Mit Zitat antworten Zitat
daniel71

Registriert seit: 27. Sep 2007
38 Beiträge
 
Delphi XE Professional
 
#7

Re: Ungültiger Spaltenname 'test'

  Alt 2. Okt 2007, 00:00
Hallo

Der fehler muss wohl woanders liegen, aber nur wo?

Mit einer selbst erstellten db kriege ich mit dieser abfrage ein ergebniss:

Delphi-Quellcode:
y:= 'hallo';

with ADOQuery1 do Begin
  SQL.Text:= 'SELECT '+
              '* '+
             'FROM '+
              '[test01] '+
             'WHERE '+
              'd = '+ QuotedStr(y);
  Open;
end;
x:= ADOQuery1.RecordCount;
natürlich auch mit der syntax von Dax, vielen dank für die hinweise


mit der db des herstellers aber nicht...

Die tabelle heisst "GROUP_" mit "GROUP" gäbe es einen fehler, kann ich auch nicht ändern, da es nicht meine db ist.
Die Spalte heisst "NAME_" auch hier dürfte es nicht am spaltennamen liegen.

mit diese abfrage kriege ich ein ergebniss:
Delphi-Quellcode:

with ADOQuery1 do Begin
  SQL.Text:= 'SELECT '+
              '* '+
             'FROM '+
              '[GROUP_] ';
  Open;
end;
x:= ADOQuery1.RecordCount;
der zugriff auf die db scheint zu funktionieren, auch mit dem "mssql server management studio express" sehe ich alle einträge der tabelle.

Die Spalte NAME_ ist nvarchar(50), NULL

hat da noch jemand eine idee?
  Mit Zitat antworten Zitat
Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#8

Re: Ungültiger Spaltenname 'test'

  Alt 2. Okt 2007, 06:47
Hallo
versuch doch mal ohne die eckigen Klammern [].
Da gibt es nämlich Unterschiede von Provider zu Provider (z.b. Access, Oracle, DB2 ...)
Peter Schaible
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Ungültiger Spaltenname 'test'

  Alt 2. Okt 2007, 11:41
Hallo,

MSSQL kommt standardmäßig mit begrenzten Bezeichnern zurecht, aber sie werden hier nicht benötigt. Der reservierte Bezeichner GROUP wurde durch das zulässige Zeichen _ (Underscore) entschärft und auch bei NAME_ scheint es ja ein Underscore zu sein. Wenn nicht, dann müsste man den beim Open zurückgelieferten Feldnamen mal genau inspizieren.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#10

Re: Ungültiger Spaltenname 'test'

  Alt 2. Okt 2007, 11:47
Hallo

Noch ne idee:
1.) Der richtige User/Schema (Gibt es die tabelle 'GROUP_' eventuell mehrmals in der DB unter verschiedenen User)?
2.) AdoQuery1 vorher nochmal closen ?
Peter Schaible
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz