AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Server Access problem
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Server Access problem

Ein Thema von AnyKey · begonnen am 8. Jan 2010 · letzter Beitrag vom 9. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#1

SQL Server Access problem

  Alt 8. Jan 2010, 09:21
Hi,

ich habe folgendes Problem: ich verbinde mich über die SQL Server Access Komponenten in Delphi auf eine SQL Server Datenbank und muss auch abfragen auf die Tabellen in der Datenbank machen. Die verbindung kommt scheinbar zu stande, nur wenn die Abfrage startet kommt eine Fehlermeldung, die folgendermaßen aussieht: Im Projekt bla.exe ist eine Exception der Klasse EMSERror aufgetreten. Meldung: 'Ungültiger Objektname TabellenName'.'. Prozess....

Hat vielleicht einer ne Idee wie der Fehler zustande kommt?

Auszug aus dem Connect:
Delphi-Quellcode:
MSConnection1.Server := server;
MSConnection1.Password := password;
MSConnection1.Username := Username;
MSConnection1.Connect;
Abfrage auf die Datenbank:
Delphi-Quellcode:
MSQuery1.SQL.Clear;
MSQUery1.SQL.Add('SELECT COUNT (*) FROM '+Username+'.'+Tabelle);
MSQuery1.Active := true;
ColumnFeatures.RowsInTable := MSQuery1.Fields[0].Value;
funktioniert genauso wenig wie:
Delphi-Quellcode:
MSQuery1.SQL.Clear;
MSQUery1.SQL.Add('SELECT COUNT (*) FROM '+Tabelle);
MSQuery1.Active := true;
ColumnFeatures.RowsInTable := MSQuery1.Fields[0].Value;
Hoffe es hat jemand eine Idee und kann mir helfen! Schlag mich damit schon ne zeit rum und hab auch schon Google bemüht, aber nichts passendes gefunden, auch nicht zum Fehler.

Gruß
AnyKey
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
533 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: SQL Server Access problem

  Alt 8. Jan 2010, 09:34
Hallo,

Hast Du schon mal mit dem Debugger die Variablen angeschaut?
Die Fehlermeldung: 'Ungültiger Objektname TabellenName'.'. klingt nicht danach.
Funktioniert die Abfrage in einem Frontend?
Was für eine Verbindung benützt Du (ADO?)
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#3

Re: SQL Server Access problem

  Alt 8. Jan 2010, 10:02
Debuggen hab ich schon versucht, bin aber zu keinem Ergebnis gekommen. Wenn ich im Toad for SQL Server die Abfrage eingebe funktioniert es einwandfrei. Abfrage: SELECT COUNT(*) FROM Tabelle
Ich benutze die SQL Server Access komponenten (MSAccess) sind das vielleicht die falschen? sollte ich besser die ADO benutzen?
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#4

Re: SQL Server Access problem

  Alt 8. Jan 2010, 11:01
Wäre echt super wenn jemand ne antwort hätte, ich hab keinen Plan wie ich das hinbekommen soll, oder was ich falsch mache. Wie müsste denn der ConnectionString bei der ADO Komponente aussehen wenn ich mich auf eine nicht lokale Datenbank verbinden will? Aber viel wichtiger, wieso kann ich mich mit den anderen Komponenten verbinden und bekomme aber Fehler bei der Abfrage? Ich denke mal das müsste doch eigentlich so funktionieren, kann mir keiner helfen?

Gruß
AnyKey
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
533 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: SQL Server Access problem

  Alt 8. Jan 2010, 11:11
Vielleicht weil wir keine Ahnung haben was das für eine Komponente sein soll?
Was sind denn die SQL Server Access Komponenten?
Und was heisst "Debuggen hab ich schon versucht, bin aber zu keinem Ergebnis gekommen"?
Welchen Wert siehst Du denn in den Variablen Username und Tabelle?
Die Fehlermeldung scheint ja eindeutig zu sein.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#6

Re: SQL Server Access problem

  Alt 8. Jan 2010, 11:22
Also
1. scheiße das keiner ahnung hat, das is echt doof...
2. Ich war der Meinung diese Komponenten wären für eine SQL Server Datenbank, da sie ja schließlich SQL Server Access heißen... wenn allerdings jemand ne idee hat welche Komponenten man (auch außer ADO) noch nehmen könnte bin ich dafür auch offen.
3. Das mit dem Debugger heißt, das in der Variablen genau der Wert steht der auch drin stehen soll, der Name der Tabelle.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

Re: SQL Server Access problem

  Alt 8. Jan 2010, 11:25
Hallo,
Zitat von AnyKey:
Wäre echt super wenn jemand ne antwort hätte, ich hab keinen Plan wie ich das hinbekommen soll, oder was ich falsch mache. Wie müsste denn der ConnectionString bei der ADO Komponente aussehen wenn ich mich auf eine nicht lokale Datenbank verbinden will? Aber viel wichtiger, wieso kann ich mich mit den anderen Komponenten verbinden und bekomme aber Fehler bei der Abfrage? Ich denke mal das müsste doch eigentlich so funktionieren, kann mir keiner helfen?

Gruß
AnyKey
nutze die ADO-Komponenten. Die Verbindung erstellst Du am besten über TADOConnection. Den Connectionstring kannst Du Dir im Objektinspektor entsprechend per Dialog zusammen bauen lassen.
Der Verbindungsstring könnte dann z. B. so aussehen:
Code:
Provider=MSDASQL.1;Persist Security Info=False;Data Source=WebWatcher;Extended Properties="DSN=WebWatcher;";Initial Catalog=WebWatch
Je nach Datenbank aber auch ganz anders.
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#8

Re: SQL Server Access problem

  Alt 8. Jan 2010, 11:34
Also ich habe jetzt noch eine Showmessage eingebaut und mir mal anzeigen lassen was überhaupt als Abfrage geschickt wird und welch überraschung, es ist genau die selbe Abfrage wie wenn ich sie im Toad mache.

Zu den ADO Komponenten, wie übergebe ich denn da dann Passwort und benutzer und alles? Gibt es noch andere Komponenten mit denen ich mich auf diese Datenbank verbinden kann?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

Re: SQL Server Access problem

  Alt 8. Jan 2010, 11:49
Hallo,

die Anmeldung geht über den Connectionstring oder über die Konfiguration des ODBC-Treibers. Da gibt es viele Möglichkeiten.
Alternativ bei der TAdoConnection LoginPrompt auf True setzen, dann per Dialog oder auch in der Ereignisroutine OnLogin.

Deine Fehlermeldung sieht aber so aus, als würden dem Benutzer die Rechte für den Zugriff auf die Tabelle fehlen. Nutzt Du im Programm und in Toad die gleiche Anmeldung? Greifst Du auch garantiert auf die gleiche Datenbank zu (nicht lachen, so 'nen Fehler hab' ich schon öfter gehabt, wenn es mehrere Testsysteme gibt, die fast identisch heißen und auch sonst fast identisch sind...)?
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#10

Re: SQL Server Access problem

  Alt 8. Jan 2010, 12:06
Ok, den Fehler hab ich behoben ^^ war eigentlich nichts großes, aber hat halt doch alles aufgehalten. -__-
Der Fehler lag darin, dass die Abfrage wohl so aussehen muss: SELECT COUNT(*) FROM Username.dbo.Tabellenname
das ist alles hätte ich auch früher schon drauf kommen können, hab ich gerade durch zufall rausgefunden.

Jetzt hab ich noch einen anderen Fehler, aber ich denke den bekomm ich gelöst.

Danke für eure Hilfe!!

Gruß und schönes Wochenende
AnyKey
  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 00:44 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