Skip to Content.
Sympa Menu

freetds - Re: [freetds] Problem with nvarchar output

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Ola Karlsson <olka AT bagheera.se>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] Problem with nvarchar output
  • Date: Tue, 12 Aug 2014 10:53:51 +0000

Hi Frediano,

Its weird as I receive the integer result without issue. And from my tests
using mssql_next_result I only receive one result set but then again I might
have been using it wrong. I´ll investigate this further on the PHP side.

Thanks a lot for all your effort.

BR
Ola


-----Ursprungligt meddelande-----
Från: FreeTDS [mailto:freetds-bounces AT lists.ibiblio.org] För Frediano Ziglio
Skickat: den 5 augusti 2014 23:23
Till: FreeTDS Development Group
Ämne: Re: [freetds] Problem with nvarchar output

Hi Ola,
log show clearly that there are two recordset before returning and from PHP
code you clearly did not handle these results. These results usually came
from any select statement but can also came from some bad designed trigger.

Frediano

Frediano


2014-08-05 8:28 GMT+01:00 Ola Karlsson <olka AT bagheera.se>:

> Hi,
> No problem :)
>
> Just to be clear I´ll post a more complete part of the PHP code below.
> I´m not sure how result sets work but as there are no results from
> this procedure, it just inputs a line, and two returns are specified
> in differen variables could this really be the case?
>
> Function PlaceOrder($xxx,$xxx....){
>
> //CONNECT
> $db_conn = db_connect();
> $stmt = mssql_init('ic_PlaceOrder',$db_conn);
>
> //BIND
> if($OrderNr)
> mssql_bind($stmt, '@OrderNr',$OrderNr, SQLINT4,true,false,8); else
> mssql_bind($stmt, '@OrderNr',$OrderNr, SQLINT4,true,true,8);
>
> mssql_bind($stmt, '@ErrorMsg',$ErrorMsg, SQLVARCHAR,true,false,4000);
>
> //EXECUTE
> $rs = mssql_execute($stmt);
>
> //RESULTS
> $return['OrderNr'] = $OrderNr;
> $return['ErrorMsg'] = $ErrorMsg;
>
> //DEBUGG
> print_r($return);
>
> //CLEAN
> mssql_free_statement($stmt);
>
> return $return;
> }
>
>
> I also tried iterating with mssql_next_result($rs) but there is only 1 set.
>
> BR
> Ola
>
>
> -----Ursprungligt meddelande-----
> Från: FreeTDS [mailto:freetds-bounces AT lists.ibiblio.org] För Frediano
> Ziglio
> Skickat: den 4 augusti 2014 18:27
> Till: FreeTDS Development Group
> Ämne: Re: [freetds] Problem with nvarchar output
>
> Hi,
> sorry for late reply.
>
> I looked at PHP code to try to understand the sequence. It seems to me
> that you called mssql_execute (which is ok) and the procedure got the
> right result but then instead of calling mssql_next_result you just
> freed the statement which cause the store procedure parameters to be
> discarded. Is it right?
>
> Frediano
>
>
> Frediano
>
>
> 2014-08-01 18:32 GMT+01:00 Frediano Ziglio <freddy77 AT gmail.com>:
>
> > I just realised you posted most of information in the first mail you
> > sent
> >
> > Frediano
> >
> >
> > 2014-08-01 17:06 GMT+01:00 Frediano Ziglio <freddy77 AT gmail.com>:
> >
> > Looks like something upset PHP code. Are you using mssql module, right?
> >> Which PHP version? Which PHP function are you calling, mssql_query ?
> >>
> >>
> >> Frediano
> >>
> >>
> >> 2014-07-31 15:01 GMT+01:00 Ola Karlsson <olka AT bagheera.se>:
> >>
> >> I´ve attached a bigger log but I find it difficult to see what is
> >> exactly
> >>> related to this query so perhaps I´ve still missed something.
> >>> Will adding logg details for a specific instance in freetds.conf
> >>> cause only logging for that instance, in my case [ap1Dev], or will
> >>> it still logg for all instances?
> >>>
> >>> If it’s the encoding is it a PHP problem or FreeTDS setting that
> >>> needs to change?
> >>>
> >>> BR
> >>> Ola
> >>>
> >>> -----Ursprungligt meddelande-----
> >>> Från: FreeTDS [mailto:freetds-bounces AT lists.ibiblio.org] För
> >>> Frediano Ziglio
> >>> Skickat: den 31 juli 2014 15:41
> >>> Till: FreeTDS Development Group
> >>> Ämne: Re: [freetds] Problem with nvarchar output
> >>>
> >>> The upper layer decided to cancel the query. The reason could be
> >>> previously in the log.
> >>> Looks like you are using an encoding which cannot support your
> >>> charset (there are some question marks in the output string
> >>> possibly result of a wrong conversion).
> >>>
> >>> Frediano
> >>>
> >>>
> >>> 2014-07-31 9:44 GMT+01:00 Ola Karlsson <olka AT bagheera.se>:
> >>>
> >>> > Hi,
> >>> > Sorry for the delay. Went on hollidays for a few weeks :)
> >>> >
> >>> > As far as I can see my error message is stated in the log
> >>> > exactly as it should be and it also states two returned results.
> >>> > The integer value is returned correctly but not the nvarchar.
> >>> >
> >>> > I have attached a portion of the log containing the procedure
> >>> > call and my error message.
> >>> > I don't notice any error messages or so but then again theres a
> >>> > lot of information in the logs.
> >>> >
> >>> > No errors in the php logs either.
> >>> >
> >>> > Any ideas?
> >>> >
> >>> >
> >>> > BR
> >>> > Ola
> >>> >
> >>> > -----Ursprungligt meddelande-----
> >>> > Från: FreeTDS [mailto:freetds-bounces AT lists.ibiblio.org] För
> >>> > Frediano Ziglio
> >>> > Skickat: den 12 juli 2014 09:06
> >>> > Till: FreeTDS Development Group
> >>> > Ämne: Re: [freetds] Problem with nvarchar output
> >>> >
> >>> > Hi,
> >>> > did you check TDSDUMP ?
> >>> >
> >>> > Frediano
> >>> >
> >>> >
> >>> > 2014-07-06 14:32 GMT+01:00 Ola Karlsson <olka AT bagheera.se>:
> >>> >
> >>> > > Hi
> >>> > > I'm using Freetds with PHP5 to access a SQL server but I'm
> >>> > > having trouble with the output parameters.
> >>> > > I have two parameters, one SQLINT4 and one SQLVARCHAR. The int
> >>> > > is working but I don't get any returns from the varchar.
> >>> > >
> >>> > > Is there anything special that needs to be done when
> >>> > > outputting
> >>> nvarchar?
> >>> > >
> >>> > > PHP binds,
> >>> > > mssql_bind($stmt,
> >>> > > '@ErrorMsg',$ErrorMsg,SQLVARCHAR,true,false,4000);
> >>> > > mssql_bind($stmt, '@OrderNr',$OrderNr,SQLINT4,true,true,8);
> >>> > >
> >>> > > SQL parameters,
> >>> > > @ErrorMsg nvarchar(4000) output @OrderNr Jeeves_OrderNo output
> >>> > >
> >>> > >
> >>> > > Sql server,
> >>> > > SQL Server 2008 R2
> >>> > >
> >>> > > Freetds server,
> >>> > > Ubuntu 12.04 3.5.0-51-generic
> >>> > >
> >>> > > Tsql -C
> >>> > > Version: freetds v0.91
> >>> > > freetds.conf directory: /etc/freetds MS db-lib source
> compatibility:
> >>> > > no Sybase binary compatibility: yes Thread safety: yes iconv
> >>> > > library: yes TDS version: 4.2
> >>> > > iODBC: no
> >>> > > unixodbc: yes
> >>> > > SSPI "trusted" logins: no
> >>> > > Kerberos: no
> >>> > >
> >>> > > Freetds conf,
> >>> > > [global]
> >>> > > text size = 64512
> >>> > > [Sqlserver]
> >>> > > host = xxx.xxx.xxx.xxx
> >>> > > port = xxxx
> >>> > > tds version = 8.0
> >>> > >
> >>> > > PHP5
> >>> > > PHP 5.3.10-1ubuntu3.12
> >>> > >
> >>> > >
> >>> > > BR
> >>> > > Ola
> >>> > > _______________________________________________
> >>> > > FreeTDS mailing list
> >>> > > FreeTDS AT lists.ibiblio.org
> >>> > > http://lists.ibiblio.org/mailman/listinfo/freetds
> >>> > >
> >>> > _______________________________________________
> >>> > FreeTDS mailing list
> >>> > FreeTDS AT lists.ibiblio.org
> >>> > http://lists.ibiblio.org/mailman/listinfo/freetds
> >>> >
> >>> > _______________________________________________
> >>> > FreeTDS mailing list
> >>> > FreeTDS AT lists.ibiblio.org
> >>> > http://lists.ibiblio.org/mailman/listinfo/freetds
> >>> >
> >>> >
> >>> _______________________________________________
> >>> FreeTDS mailing list
> >>> FreeTDS AT lists.ibiblio.org
> >>> http://lists.ibiblio.org/mailman/listinfo/freetds
> >>>
> >>> _______________________________________________
> >>> FreeTDS mailing list
> >>> FreeTDS AT lists.ibiblio.org
> >>> http://lists.ibiblio.org/mailman/listinfo/freetds
> >>>
> >>>
> >>
> >
> _______________________________________________
> FreeTDS mailing list
> FreeTDS AT lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
> _______________________________________________
> FreeTDS mailing list
> FreeTDS AT lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
>
_______________________________________________
FreeTDS mailing list
FreeTDS AT lists.ibiblio.org
http://lists.ibiblio.org/mailman/listinfo/freetds



Archive powered by MHonArc 2.6.24.

Top of Page