phpbar.de logo

Mailinglisten-Archive

[php] Access/ODBC: =?ISO-8859-1?Q?unvollst=E4ndiger?= Datentransfer

[php] Access/ODBC: unvollständiger Datentransfer

R.J. Koester [B2A] php_(at)_phpcenter.de
Thu, 18 Oct 2001 11:33:32 +0200


Hallo, zusammen!

Zunächst: als neues Mitglied dieser Liste (und auch der 
PHP-Entwicklergemeinde) verzeiht bitte, falls mein Problem erst vor 
kurzem erörtert wurde. Mir fehlt i.M. leider, leider die Zeit für eine 
eingehende Archiv-Recherche. Ein konkreter Hinweis aufs Archiv würde mir 
aber auch schon helfen!

Zum Problem:

Eine Access 2000-DB unter W2K soll via ODBC (System-DNS per "Microsoft 
Access-Treiber (*.mdb)") HTML-Textbausteine liefern, aus denen PHP eine 
komplette Seite zusammenbaut. Soweit so gut. Connect und Zugriff 
funktionieren, Seite wird aufgebaut, (fast) alles wunderbar ...

Wäre da nur nicht die störende Tatsache, dass von den HTML-Bausteinen, 
die in einem Access-Datenfeld vom Typ "Memo" abgelegt sind, niemals die 
maximal möglichen 64.000 Zeichen (oder waren es 64 KB? Egal!) 
zurückgeliefert werden, sondern anscheinend völlig willkürlich nur 
zwischen 4 KB und vielleicht 32 KB des Inhalts. Dabei handelt es sich 
paradoxerweise aber jeweils um *exakt* die gleiche Datenmenge pro 
betroffenem Baustein, weshalb ich zunächst an ein bestimmtes Byte im 
Baustein als Auslöser dachte (im Sinn eines wie auch immer gearteten 
Steuerzeichens). Das ist allerdings nicht der Fall.

Der Query ist wohl korrekt, die Übergabe anscheinend auch, weil ja das 
Erwartetete geliefert wird (siehe Code-Schnipsel ganz unten). Wo aber 
bleiben die unterschlagenen Bytes des Feldinhalts?

Gibt es irgendwelche Einstellungen, die ich näher betrachten sollte -- 
ob nun auf PHP- oder auf ODBC-Treiberseite? Beides ist derzeit völlig 
Default eingestellt.

Achja, nochwas: das Problem tritt sowohl dann auf, wenn IIS, PHP.EXE und 
die ODBC-Quelle auf einem W2K-Server wohnen, als auch dann, wenn ich den 
ganzen Klumpatsch lokal auf einem W2K-Prof. Arbeitsplatz zum Rennen 
bringe. Es scheidet also wohl auch ein LAN-bedingter Timeout aus, oder?

Jeder Hinweis wird äußerst dankbar entgegen genommen!

Gruß,
   Rodya

Code-Schnipsel:
~~~~~~~~~~~~~~~~
	function do_sql($q) {	//Query ausführen
		GLOBAL $conn;
		if (! $r=odbc_exec($conn,$q ) )
			die("Konnte Query nicht
                              ausführen!<br>$q");
		return $r;
	}
	function get_col($r,$c) {	//Spalte selektieren
		$r=odbc_result($r,$c);
		return $r;
	}

	$query="SELECT tBaust.html, tCont.titel
		FROM tCont INNER JOIN (tBaust INNER JOIN
		tContBaust ON tBaust.baustid =
		tContBaust.baustid) ON tCont.contid =
		tContBaust.contid
		WHERE tCont.contid=$cpid";	//cpid = ContentPageID

		$result=do_sql($query);

		while ($l=odbc_fetch_row($result)) {
			$komp=get_col($result,"html");
			echo $komp;	//Hier erfolgt Ausgabe
		}

-- 
________________________________________________________

  Rodya Jörn Koester      B2A MEDIA GRAFIC DESIGN
  mailto:koester_(at)_b2a.de   Kassel,Deutschland,Europa,Erde
________________________________________________________




php::bar PHP Wiki   -   Listenarchive