0

この素晴らしいJQueryプラグインをSQLServerで動作させようとしています。他の場所(MS Accessで)で使用しているようにPDOをセットアップしました-SQL Server(2008)でセットアップしたと思います。接続方法は次のとおりです。

define('DB_DSN',"odbc:Driver={SQL Server};Server=MyInstance;Database=table1;");
define('DB_USER', ''); 
define('DB_PASSWORD', '');

// include the jqGrid Class
require_once "php/jqGrid.php";
// include the PDO driver class
require_once "php/jqGridPdo.php";
// Connection to the server
$conn = new PDO(DB_DSN,DB_USER,DB_PASSWORD);
// Tell the db that we use utf-8
$conn->query("SET NAMES utf8");
// Create the jqGrid instance
$grid = new jqGridRender($conn);
$tsql = 'SELECT * FROM Trt';
// Write the SQL Query
$grid->SelectCommand = $tsql;
// set the ouput format to json
$grid->dataType = 'json';
// Let the grid create the model
$grid->setColModel();
// Set the url from where we obtain the data
$grid->setUrl('report-creator.php');

// Set grid caption using the option caption
$grid->setGridOptions(array(
    "caption"=>"Report",
    "rowNum"=>10,
    "sortname"=>"OrderID",
    "hoverrows"=>true,
    "rowList"=>array(10,20,50),
    ));

$grid->toolbarfilter = true;
$grid->setFilterOptions(array("stringResult"=>true));
$grid->renderGrid('#grid','#pager',true, null, null, true,true);
$conn = null;

このエラーが発生します:

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IM001]: Driver
 does not support this function: driver doesn't support meta data' in  
C:\wamp\www\webs\tgd\edh\php\jqGridPdo.php(1) : eval()'d code:1 Stack trace: #0 
C:\wamp\www\webs\tgd\edh\php\jqGridPdo.php(1) : eval()'d code(1): PDOStatement-
    >getColumnMeta(0) #1 C:\wamp\www\webs\tgd\edh\php\jqGrid.php(1) : eval()'d code(7):  
jqGridDB->getColumnMeta(0, Object(PDOStatement)) #2 C:\wamp\www\webs\tgd\Front- End\report-
creator.php(31): jqGridRender->setColModel() #3 C:\wamp\www\webs\tgd\Front- End\view-
report.php(123): require_once('C:\wamp\www\web...') #4 {main} thrown in  
C:\wamp\www\webs\tgd\edh\php\jqGridPdo.php(1) : eval()'d code on line 1

私はどんな助けにも感謝します-私はただ問題を理解することができません。私はそれをこの関数に絞り込みました:$grid->SelectCommand-これを削除してもエラーは発生しませんが、データベースをクエリするためのt-sqlが移動する場所であるため、これなしでは実行できません。

を使用してSQLサーバーmysqlにクエリを実行できますPDQ->Query('SELECT * FROM table1')

皆さんありがとう

注意:プライバシーのためにテーブル名とファイルパスを編集しました。:)

4

3 に答える 3

0

これを解決できなかったので、MicrosoftのPHPドライバーを使用するJQGridの人たちによって書かれた別のクラスに切り替えました。これは私の問題を解決しました、それが誰かを助けることを願っています。

于 2010-02-25T02:04:54.283 に答える
0

jqGridはgetColumnMeta関数を使用して列を列挙しているように見えますが、この関数はいくつかのドライバー(この場合はMSSQLドライバー)でサポートされていない可能性があります。

getColumnMetaが機能するかどうかをテストするには、上記のリンクの例を参照してください。

于 2010-02-22T21:48:16.723 に答える
0

私はTrirand(開発者jqGrid-ASP.NETチーム)で働いており、残念ながらPHPについてはあまり役に立ちませんが、私たち自身のフォーラムにも同じ質問を投稿することをお勧めします。

http://www.trirand.net/forum/

そこにPHPjqGridフォーラムがあり、PHPチームからタイムリーな応答があります。その間、私は彼らに電子メールを書いて、ここでも助けてくれるように頼みますが、万が一の場合に備えて、そこに投稿することで答えが保証されます。

乾杯、ルーメンスタンコフトリランドインク

于 2010-02-23T16:26:40.057 に答える