powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php + mssql
10 сообщений из 10, страница 1 из 1
php + mssql
    #37486598
Cresh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PHP Version 5.3.3-7+squeeze3
System Linux creshDebian 2.6.32-5-686
Apache Version Apache/2.2.17 (Debian)

Установил php-sybase из apt

Подключаюсь
$link = mssql_connect('10.0.19.25', 'Sa', 'msdeSET');

if (!$link) {
die('Something went wrong while connecting to MSSQL');
}

Работет, делаю простой тестовый запрос - работает.

Делаю запрос ради чего все затевалось

$query = "
SELECT
h.ShopIndex,
h.OperDay,
h.Cash_Code as CashN,
h.DateOperation,
h.Ck_Number as ChkN,
h.Cassir,
h.Id AS ChequeId,
d.DiscType,
dt.Name,
d.DiscId,
isnull((select dc.Category from DiscountCards dc where dc.Id=d.DiscId), 0) as dcCat,
d.CardNumber,
round(d.DiscPercent, 2) as DiscPct,
sum(d.DiscSumm) as DiscSummS,
sum(d.Quantity*d.Price) as TotalSummS
FROM v_ChequeHead h, ChequePos p, ChequeDisc d, DiscountType dt
WHERE p.ChequeId = h.Id AND d.PosId = p.Id and d.DiscType = dt.DiscountTypeValueFromCash

Первый случайand h.OperDay = 20111018
Второй случайand h.OperDay = 2011101

group by h.ShopIndex, h.OperDay, h.Cash_Code, h.DateOperation, h.Ck_Number, h.Cassir, h.Id,
d.DiscType, dt.Name, d.DiscId, d.CardNumber, d.DiscPercent
order by h.DateOperation desc";

Первый случай не выводит ничего! ни ошибки ни даже простого echo.
Второй случай говорит что нет записи - так и должно быть.

Методом тыка нашел что работает до 6-ти знаков 7 - не работает.
Тоесть если поменять на h.Cash_Code = 1 то будет результат. а если h.Cash_Code = 1111111
скрипт не вернет совсем ничего

В скрипте установлено:
авторini_set("error_reporting", E_ALL);
ini_set("display_errors", 1);
echo mssql_get_last_message(); после каждой строчки

Работа с базой делается так:
авторmssql_select_db('SES', $link);
$version = mssql_query($query);
echo 'Total records in database: ' . mssql_num_rows($version)."\n";
while($row = mssql_fetch_array($version))
print_r($row);
// Clean up
mssql_free_result($version);
mssql_close($link);
...
Рейтинг: 0 / 0
php + mssql
    #37486615
Cresh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mssql

MSSQL Support enabled
Active Persistent Links 0
Active Links 0
Library version FreeTDS

Directive Local Value Master Value
mssql.allow_persistent On On
mssql.batchsize 0 0
mssql.charset cp1251 cp1251
mssql.compatability_mode On On
mssql.connect_timeout 5 5
mssql.datetimeconvert On On
mssql.max_links Unlimited Unlimited
mssql.max_persistent Unlimited Unlimited
mssql.max_procs Unlimited Unlimited
mssql.min_error_severity 10 10
mssql.min_message_severity 10 10
mssql.secure_connection Off Off
mssql.textlimit default default
mssql.textsize default default
mssql.timeout 60 60
...
Рейтинг: 0 / 0
php + mssql
    #37488703
Cresh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при запуске в командной строке выдается ошибка zend_mm_head corrupted
...
Рейтинг: 0 / 0
php + mssql
    #37488952
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
php + mssql
    #37895828
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хочется получить ошибку из мсскл.

в сохраненке сделал ошибку. при вызове из сишарпа получаю ответ

авторEXEC dbo.ga_get_code_list @SortObj = 'txt', @SortType = 'desc'
/* lineNo: 0:'156(first of 2 errors)/Incorrect syntax near the keyword 'convert'.


и это правильно. в пхп


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  $rsAcc=new Recordset
                  ("exec dbo.ga_get_code_list @SortObj = '".$sortObj."'
                          ,@SortType = '".$sortType."'"
                            ,$dbconn); 

  error_log(" sql code:".$rsAcc->sql."\n",3,'/home/agp/7loc/public_html/pg.log');
  if ($rsAcc->result == true) {     
    error_log("   good query\n",3,'/home/agp/7loc/public_html/pg.log');
    error_log("nRows/nCols:".$rsAcc->rowcount.'/'.$rsAcc->fieldcount."\n",3,'/home/agp/7loc/public_html/pg.log');
    error_log(mssql_get_last_message()."\n",3,'/home/agp/7loc/public_html/pg.log');

  }
  if ($rsAcc->result == false)  {
    error_log(mssql_get_last_message()."\n",3,'/home/agp/7loc/public_html/pg.log');
  }



иду по ветке $rsAcc->result == true
и сообщения от ошибке отсутствует

что делать и кто виноват?
...
Рейтинг: 0 / 0
php + mssql
    #37895830
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если если вызывать отсутствующую сохраненную процедуру,
то mssql_get_last_message() об ошибке сообщает
...
Рейтинг: 0 / 0
php + mssql
    #37895834
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
/*  Recordset class for using MS SQL query                              */
/************************************************************************/

class Recordset 
{ 
  var $result,     // result id 
      $rowcount,   // number of rows in result 
      $curpos,     // index of current row (begin=0, end=rowcount-1) 
      $fieldcount, // number of fields in result 
      $fn,         // Array of fields names 
      $rowset,     // Array of fields with keys on field name 
      $connection, // connection id 
      $sql;        // sql query 

  //Constructor 
  function Recordset($Sql,$Conn) 
  { 
    $this->connection=$Conn; 
    $this->sql=$Sql; 
    $this->fn=array(); 
    $this->rowset=array(); 
    $this->Query(); 
  } 

  // Execute query 
  function Query() 
  { 
    $this->Close(); 
    $this->result = @mssql_query($this->sql,$this->connection);   <--------------------------------------------------
    if (!$this->result) 
      return(0); 
    $this->rowcount = @mssql_num_rows($this->result); 
    $this->fieldcount = @mssql_num_fields($this->result); 
    for ($i=1;$i<=$this->fieldcount;$i++) 
    { 
       $f=@mssql_fetch_field($this->result,$i-1); 
       // Fill fields names array 
       $this->fn[$i]=$f->name; 
    } 
    $this->curpos=0; 
  } 
...
Рейтинг: 0 / 0
php + mssql
    #37895943
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
php + mssql
    #37895946
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а блин Чингиз, не путай нас, мы и так запутанные.

ну и вообще, возьми нормальный драйвер наконец. этот уже лет 5 как Deprecated
...
Рейтинг: 0 / 0
php + mssql
    #37896011
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
устарелый драйвер это freeTDS?
пысы
драйвер я менять не буду, мне в действующую систему надо вставить одну страницу.
как они выражались сделаешь копи пайст кода за полчаса.

сообщения об ошибке начало выдаваться, но для этого в сохраненной процедуре
приходится делать трай кэч в котором повторить ошибку рейзэррором
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
GO
ALTER PROCEDURE [dbo].[ga_get_code_list] 
 @SortObj varchar(32),
 @SortType varchar(32)
 AS
 begin try
   declare @ExecStr varchar(8000)
   set @ExecStr = 'select rtrim( convert( varchar(64), id) ) as ' + CHAR(39)  + 'id' + CHAR(39) 
                   + ', txt, type, status' 
                   + '  
   from code order by ' + @SortObj + ' ' + @SortType
   exec ( @ExecStr )
   print 'aaa'
 end try
 begin catch
    DECLARE @ErrorMessage NVARCHAR(4000);
    DECLARE @ErrorSeverity INT;
    DECLARE @ErrorState INT;
    SELECT @ErrorMessage = + 'raise error: '+ERROR_MESSAGE() ,@ErrorSeverity = ERROR_SEVERITY(),@ErrorState = ERROR_STATE();
    RAISERROR (@ErrorMessage,@ErrorSeverity,@ErrorState);
 end catch
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php + mssql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]