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: Frediano Ziglio <freddy77 AT gmail.com>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] Problem with nvarchar output
  • Date: Tue, 5 Aug 2014 22:22:49 +0100

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
>




Archive powered by MHonArc 2.6.24.

Top of Page