Sqlsrv error on dynamic_loading

dear dhx team,

i just downloaded db_sqlsrv driver from this topic viewtopic.php?f=19&t=16913

it’s work great till i try enabling dynamic loading, $grid->dynamic_loading(50); it didn’t work, attribute row_count have no value and return only first 50 record

here is generated log

====================================
Log started, 13/08/2011 07:08:58
====================================

SELECT  TOP 50  ''	 	as kodeba, 
            h.kode_owner,
            ''          			as satker,
            left(no_spm,4)				        as bkpk, 
            convert(varchar(10),h.tanggal,111)		    as tanggalsp2,
            month(h.tanggal) 		as bulan,
            left(h.no_faktur,7)		as nomorsp2d,
            ''				        as kppn,
            ''      			    as nmsatker,
            ''				        as nmkppn,
            ''				        as nmkwl,
            ''				        as angkt,
            h.subyek		      	as uraian,
            ''		            	as bendahara
 FROM spm_header h 
            join spm_potong d on(h.kode_owner=d.kode_owner and h.no_faktur=d.no_faktur and h.jenis=d.jenis) WHERE  (month(h.tanggal) between 1 and 6) and year(h.tanggal)='2010'
            

SELECT  COUNT(*) as DHX_COUNT  FROM spm_header h 
            join spm_potong d on(h.kode_owner=d.kode_owner and h.no_faktur=d.no_faktur and h.jenis=d.jenis) WHERE  (month(h.tanggal) between 1 and 6) and year(h.tanggal)='2010'
            

sqlsrv_fetch_array() expects parameter 1 to be resource, boolean given at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 30

Invalid argument supplied for foreach() at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 31

array_key_exists() expects parameter 2 to be array, boolean given at D:\www_php\iwp\iwp\controllers\lib\connector\db_common.php line 630

Invalid argument supplied for foreach() at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 31

Done in 0.085141181945801s

Try to use the attached version of php file.
It will not fix the issue, but will provide more details about sql error which occurs during data fetching.
db_sqlsrv.zip (1.21 KB)

here is error log after i replaced db_sqlsrv.php

before dynamic loading enabled

====================================
Log started, 16/08/2011 07:08:27
====================================

SELECT   ''	 	as kodeba, 
            h.kode_owner,
            ''          			as satker,
            left(no_spm,4)				        as bkpk, 
            convert(varchar(10),h.tanggal,111)		    as tanggalsp2,
            month(h.tanggal) 		as bulan,
            left(h.no_faktur,7)		as nomorsp2d,
            ''				        as kppn,
            ''      			    as nmsatker,
            ''				        as nmkppn,
            ''				        as nmkwl,
            ''				        as angkt,
            h.subyek		      	as uraian,
            ''		            	as bendahara
 FROM spm_header h 
            join spm_potong d on(h.kode_owner=d.kode_owner and h.no_faktur=d.no_faktur and h.jenis=d.jenis) WHERE ( (month(h.tanggal) between 1 and 6) and year(h.tanggal)='2010'
            )

Invalid argument supplied for foreach() at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 42

Done in 12.251349925995s

after dynamic loading enabled

====================================
Log started, 16/08/2011 07:08:06
====================================

SELECT  TOP 50  ''	 	as kodeba, 
            h.kode_owner,
            ''          			as satker,
            left(no_spm,4)				        as bkpk, 
            convert(varchar(10),h.tanggal,111)		    as tanggalsp2,
            month(h.tanggal) 		as bulan,
            left(h.no_faktur,7)		as nomorsp2d,
            ''				        as kppn,
            ''      			    as nmsatker,
            ''				        as nmkppn,
            ''				        as nmkwl,
            ''				        as angkt,
            h.subyek		      	as uraian,
            ''		            	as bendahara
 FROM spm_header h 
            join spm_potong d on(h.kode_owner=d.kode_owner and h.no_faktur=d.no_faktur and h.jenis=d.jenis) WHERE ( (month(h.tanggal) between 1 and 6) and year(h.tanggal)='2010'
            )

SELECT  COUNT(*) as DHX_COUNT  FROM spm_header h 
            join spm_potong d on(h.kode_owner=d.kode_owner and h.no_faktur=d.no_faktur and h.jenis=d.jenis) WHERE ( (month(h.tanggal) between 1 and 6) and year(h.tanggal)='2010'
            )

Undefined variable: i at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

Undefined index:  at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

Undefined variable: i at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

Undefined index:  at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

Undefined variable: i at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

Undefined index:  at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

Undefined variable: i at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

Undefined index:  at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

Undefined variable: i at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

Undefined index:  at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

Undefined variable: i at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

Undefined index:  at D:\www_php\iwp\iwp\controllers\lib\connector\db_sqlsrv.php line 25

!!!Uncaught Exception
Code: 0
Message: SQLSrv operation failed

I know this was a long time ago but did you figure out the problem? I’m having the same issue.

Hi, tito,
could you provide connector initialization code?

Hi radyno,
I’m not sure what I did yesterday but it is working now. I’ll post my code anyways in case it’ll help someone else. Thanks for the response.

<?php    
    require_once("codebase/db_sqlsrv.php"); 
    require_once("codebase/grid_connector.php");
	include_once("../../../../db.php"); 	
    $grid = new GridConnector($conn,"SQLSrv");
    $grid->render_sql("SELECT * FROM Table","","Name,Date,MTD Return"); 
/* Close the connection. */
    sqlsrv_close( $conn);
    echo "Connection closed.\n";
?>

Good job :wink: