SQL-Abfrage liefert keine Daten

SQL-Abfrage liefert keine Daten

am 07.11.2007 13:24:24 von Patrick Doern

Hallo zusammen,

ich habe folgendes Problem. Gegeben ist eine Mysql 4.4.2 Datenbank in die
diverse Buchhaltungsdaten einfliesen. Von einem Webserver (IIS 6.0) wird via
ODBC Connector 5.1 darauf zugegriffen. Die u.g. Abfrage liefert alle offenen
Rechnungen aus dem Jahr 2007:

select * from kunden, (select rechnnr, rechdatum, kundennr, rechnung.status,
firm, gespreis from rechnung LEFT JOIN Sperrliste ON Rechnung.RECHNNR =
Sperrliste.RENR WHERE (((Sperrliste.RENR) Is Null)) group by rechnnr,
rechdatum, kundennr, rechnung.status, firm, gespreis) as rechnung2 where
kunden.kundnr = rechnung2.KUNDENNR and RECHNNR > 100000 and RECHNNR < 300000
and KUNDENNR <> '700112' and FIRM <> 'BEZAHLT' and RECHDATUM like '%2007%'
ORDER BY RECHNNR

Jetzt habe ich das ganze auf einem 2. Server neu aufgesetzt. Identische
Datenbank- und Webserverversionen. Aber über die Webseite (1:1 Kopie der
anderen Maschine) bekomme ich kein Ergebnis. Gehe ich auf dem Webserver über
SQLYog (SQL Client) auf die Datenbank und setzte o.g. Statement ab, bekomme
ich die Ergebnisse.

Kann mir einer sagen wo ich noch suchen kann?

Gruß Patrick

Re: SQL-Abfrage liefert keine Daten

am 07.11.2007 13:32:08 von Patrick Doern

Hier noch den entsprechende Scriptteil .. ASP (VBScript)

<%

Set objConn1 = Server.CreateObject("ADODB.Connection")
objConn1.Open "doern"

objSQL1 = "select * from kunden, (select rechnnr, rechdatum, kundennr,
rechnung.status, firm, gespreis from rechnung LEFT JOIN Sperrliste ON
Rechnung.RECHNNR = Sperrliste.RENR WHERE (((Sperrliste.RENR) Is Null)) group
by rechnnr, rechdatum, kundennr, rechnung.status, firm, gespreis) as
rechnung2 where kunden.kundnr = rechnung2.KUNDENNR and RECHNNR > 100000 and
RECHNNR < 300000 and KUNDENNR <> '700112' and FIRM <> 'BEZAHLT' and
RECHDATUM like '%2007%' ORDER BY RECHNNR"
Set objRS1 = Server.CreateObject("ADODB.Recordset")
objRS1.Open objSQL1, objConn1, 3, 3

If objRS1.EOF Then
response.write "Keine Daten"
else
Do While Not objRS1.EOF
strRECHNNR = objRS1.Fields("RECHNNR")
strKUNDENNR = objRS1.Fields("KUNDNR")
response.write(strRechnr)
objRS1.MoveNext
loop
end if

objRS1.Close
Set objRS1 = Nothing

objConn1.Close
Set objConn1 = Nothing
%>

Re: SQL-Abfrage liefert keine Daten

am 07.11.2007 13:53:04 von Patrick Doern

Das Problem war wohl der ODBC Connector .. eine komplette Deinstallation und
eine Neuinstallation bringt jetzt das gewünschte Ergebnis.

Re: SQL-Abfrage liefert keine Daten

am 07.11.2007 13:59:17 von Claus Reibenstein

Patrick Doern schrieb:

> Hier noch den entsprechende Scriptteil .. ASP (VBScript)

Ich habe zwar keine Ahnung von ASP (na ja, vor Jahren mal zwangsweise
gemacht, aber danach ganz schnell wieder verdrängt), aber das hier ...

> response.write "Keine Daten"

.... solltest Du mal durch eine _aussagekräftige_ Fehlermeldung ersetzen.

Sicher gibt es auch in ASP die Möglichkeit, den MySQL-Fehlerstatus oder
die Fehlermeldung zu ermitteln. Diese solltest Du hier mal ausgeben
statt nur "Keine Daten". Das könnte Dir schon helfen, von selber auf den
Fehler zu kommen.

Falls das immer noch nicht reicht, kannst Du die Meldung ja mal hier
posten. Dann haben wir auch eine Chance, Dir zu helfen.

Gruß. Claus

Re: SQL-Abfrage liefert keine Daten

am 07.11.2007 15:21:37 von Patrick Doern

Hallo Claus,

das ist auch nur ein Testscript gewesen .. das "Keine Daten" ist im
normalfall etwas aussagekräftiger, aber zum Testen ob überhaupt Daten
selektieren war das die schnellste möglichkeit.

Wie gesagt, durch die Neuinstallation der ODBC Connectoren hat sich das
Problem gelöst.

Danke und Gruß
Patrick

"Claus Reibenstein" <4spammersonly@web.de> schrieb im Newsbeitrag
news:5pdr4vFqebc3U1@mid.individual.net...
> Patrick Doern schrieb:
>
>> Hier noch den entsprechende Scriptteil .. ASP (VBScript)
>
> Ich habe zwar keine Ahnung von ASP (na ja, vor Jahren mal zwangsweise
> gemacht, aber danach ganz schnell wieder verdrängt), aber das hier ...
>
>> response.write "Keine Daten"
>
> ... solltest Du mal durch eine _aussagekräftige_ Fehlermeldung ersetzen.