JQGrid и Microsoft SQL Server - PullRequest
       9

JQGrid и Microsoft SQL Server

0 голосов
/ 22 февраля 2010

Я пытаюсь получить этот удивительный плагин JQuery , работающий с SQL Server. У меня есть настройки PDO, как я использую его в другом месте (с MS Access) - я думаю, что теперь у меня есть настройки с 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 Server MySQL, используя PDQ->Query('SELECT * FROM table1').

Спасибо всем

Обратите внимание: я отредактировал имя таблицы, пути к файлам для конфиденциальности. :)

Ответы [ 3 ]

0 голосов
/ 23 февраля 2010

Я работаю в Trirand (компании, которая разрабатывает jqGrid - команду ASP.NET) и, к сожалению, не могу сильно помочь с PHP, но я могу предложить опубликовать тот же вопрос и на наших собственных форумах:

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

там вы найдете форум PHP jqGrid, и вы получите своевременный ответ от нашей команды PHP. Тем временем я напишу им письмо и попрошу их помочь и здесь, но на всякий случай размещение там гарантирует вам ответ.

Ура, Румен Станков Trirand Inc

0 голосов
/ 25 февраля 2010

Я не мог решить эту проблему, поэтому я переключился на другой класс, написанный ребятами из JQGrid, который использует драйвер PHP от Microsoft. Это решило мою проблему, надеюсь, это кому-нибудь поможет.

0 голосов
/ 23 февраля 2010

Похоже, jqGrid использует функцию getColumnMeta для перечисления столбцов, но эта функция может не поддерживаться несколькими драйверами - в данном случае, вашим драйвером MSSQL.

См. Примеры в ссылке выше, чтобы проверить, работает ли getColumnMeta.

...