Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
MSSQL mit freeTDS auf Linux: Tester gesucht [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
MSSQL mit freeTDS auf Linux: Tester gesucht


 
Patrick_PQ
02-08-2004, 15:27 
 
Hallo Hilfsbereiter!

ich habe Suse8.2 mit freetds und PHP5.0.0. Klappt auch alles wunderbar. Bis auf eine Kleinigkeit. Wenn ich mehrere Select-Anweisungen (durch mssql_query("Select ...; Select ...; Select ...") oder mittels stored procedure) ausführe kann ich laut manual mit der Funktion mssql_next_result das nächste Ergebnis erhalten. Allerdings tritt mit der o.g. Konfiguration ein Fehler auf, wenn eine Select-Anweisung keine Treffer findet. Dann wird einfach das darauf folgende Ergebnis zurückgegeben.

Ein Beispiel: drei Select-Anweisung, Nr.2 enthält keine Treffer - was man ja vorher nicht weiß ... Ich lasse die Ergebnisse der ersten Anweisung ausgeben und führe dann mssql_next_result aus. Ich erhalte jetzt sofort die Ergebnisse der 3. Select-Anweisung! Das bringt meine Anwedung natürlich voll durcheinander ...

Bei PHP habe ich vor eineinhalb Wochen einen Bug gemeldet (http://bugs.php.net/bug.php?id=29316) aber leider keine Reaktion bis heute. Vielleicht kann hier jemand helfen und das einmal auf seinem System mit einer anderen PHP-Version testen (bitte nur Linux - Windows geht ...).

Meine Konfiguration:
Suse8.2
freetds 0.62.3
MS-SQLServer 2000
PHP 5.0.0

Vielen Dank!
*verschieb* zur projekthilfe
wurzel

 
asp2php
02-08-2004, 16:23 
 
versuch mal per select case ... when ... else abzufangen, dass das select auf jeden Fall was liefert.

 
Patrick_PQ
03-08-2004, 08:41 
 
@asp2php: Danke, dass du dich meinem Problem angenommen hast - ich weiß, so lange und konfuse Problembeschreibungen schrecken immer ab ... ;)

Natürlich könnte ich das Problem auch auf verschiedene Weg umgehen - mit deinem Vorschlag oder wenn ich einfach select @@rowcount ausgeben lassen oder ...

Da ich aber verschiedene Anwendungen von einem Windows-IIS auf einen Suse-Apache verlagern möchte habe ich keine Lust sämtlichen Quellcode durchzuforsten und anzupassen. Wie gesagt, Windows/PHP liefert korrekte Ergebnisse auch wenn ich mit der freetds-Konsole arbeite bekomme ich eine leeres Resultset angezeigt - nur die MSSQL-Funktionen von PHP(5?) scheinen hier fehlerhaft zu arbeiten.

Also, mal schaun ob jemand freetds mit einer anderen PHP-Version betreibt und das mal testen kann.

 
asp2php
03-08-2004, 09:21 
 
warum nicht Apache auf Window installieren und probieren, wenn es ohnehin mit Window schon ohne Probleme gab. Warum muss es Linux sein :dontknow:

 
Patrick_PQ
04-08-2004, 13:20 
 
Hi asp2php,

für eine andere Anwendung benötige ich zwingend Linux - und ich möchte nicht auf jedem dritten Rechner einen Webserver laufen haben ... ich sehe nur zwei Möglichkeiten:
a) ich verwende eine ungenaue Syntax, die auf einem Windows-System akzeptiert wird und von Linux eben nur teilweise
b) die mssql-Erweiterung von PHP5 arbeitet in diesem Fall fehlerhaft

Die Syntax ist recht simpel - habe auch schon alles dazu gelesen und probiert. Ich vermute daher es liegt an der mssql-Erweiterung von PHP5. Da ich jetzt aber keinen Bock habe noch eine weitere PHP-Version aufzusetzen suche ich jemanden, der das mal mit einer Vorgängerversion durchspielen kann.


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:48 Uhr.