Thank you, i was experimenting yesterday and i think i got it working
right, but with 0.64+ version.
With versions 0.63+ DB_Cancel should call
tds_process_simple_query to clear pending results, tds_freeall_resulst
does not do this.

Ian Harding wrote:
Sorry, that was not really right.

"The severity level of an error message provides an indication of the
type of problem that Microsoft(r) SQL Serverï¾™ 2000 has encountered.

 Severity level 10 messages are informational  and indicate problems
caused by mistakes in the information you have entered. Severity
levels from 11 through 16 are generated by the user, and can be
corrected by the user."

I remember experimenting and finding that it was safe to consider
error levels 1 - 10 "Notice" information and > 10 always indicating a
real "Error" that should be returned to the caller.

On 5/25/05, Ian Harding <[EMAIL PROTECTED]> wrote:

10 indicates a critical error.

On 5/25/05, Vlad Seryakov <[EMAIL PROTECTED]> wrote:

Why msg_level > 10, why 10, and not 0?

Ian Harding wrote:

Vlad,

I installed 0.63 and compiled and installed your module.

It seems to work fine, but has a glitch I ran into as well which is
that it doesn't return error codes when something went wrong with the
query itself.  For example, with my hack I get this

SQL:

   SELECT cast('foo' as int)

Results:

   error: Database operation "exec" failed (exception NSDB, "Syntax
error converting the varchar value 'foo' to a column of data type
int.")

Rows affected: -1

With your version I get

SQL:

   SELECT cast('foo' as int)

Results:

Rows affected: -1

While the log indicates
[25/May/2005:12:46:20][17746.1090534320][-conn:server1::0] Notice:
Db_Msg_Handler(fundware): Syntax error converting the varchar value
'foo' to a column of data type int.

This has to do with a fundamental change in error handling where
non-network communication errors are not errors to freetds anymore.
They are simply passed back to the application for it to handle.

Here is my hack which seems to work but may be terribly wrong for other reasons.

int
Ns_FreeTDS_Msg_Handler(TDSCONTEXT *ctx, TDSSOCKET *tds, TDSMESSAGE *msg)
{
   Ns_DbHandle *handle = (Ns_DbHandle *) tds->parent;

   Ns_Log(Notice, "nsfreetds: Ns_FreeTDS_Msg_Handler(%s): %s",
       handle->datasource, msg->message);

// Begin hack
   if ( msg->msg_level > 10 )
       Ns_DbSetException(handle, "NSDB", msg->message);
// End hack

   return 0;
}




On 5/25/05, Vlad Seryakov <[EMAIL PROTECTED]> wrote:


Try newest FreeTDS 0.63 with my modified nsfreetds driver.

http://cvs.sourceforge.net/viewcvs.py/naviserver/modules/nsfreetds/

It does not support interfaces anymore, use freetds.conf and describe
datasource there.

---- nsd.tcl

ns_section      "ns/db/pool/cbill"
ns_param        driver                  freetds
ns_param        connections             10
ns_param        user                    cbill
ns_param        password                cbill
ns_param        datasource              Billing
ns_param        verbose                 Off
ns_param        logsqlerrors            On
ns_param        maxidle                 31536000

---- freetds.conf
[Billing]
       host = cbill
       port = 1433
       tds version = 7.0

Cory Grimster wrote:


Hi everyone,

I'm having trouble getting nsfreetds running, and I'm hoping that
someone can spot what I'm doing wrong.  I noticed that several people on
the list have gotten it working at various times, so I assume it's just me.

I'm using nsfreetds 0.4 with FreeTDS 0.6.1.2 (newer versions of FreeTDS
won't compile on this server) and AOLserver 4.0.10
running on Mandrake 10.0.  I'm trying to connect to Microsoft SQLServer
Desktop Engine 2000 SP4 running on my Windows XP workstation.  I'm
getting the "could not allocate a handle from database pool "pool4""
error page when I hit my site.

I can connect to the SQL server with tsql, though it doesn't give me any
output when I type in SQL commands.  Not sure what that's about.
Authentication works fine, and it rejects me if I don't give it the
correct credentials.  Anyway, I'm assuming that it works for now and am
trying to get nsfreetds working.

The relevent sections from my config.tcl (copied from the nsfreetds FAQ)
are as follows:

ns_section ns/db/drivers
  ns_param    freetds            ${bindir}/nsfreetds.so

ns_section ns/db/pools
  ns_param    pool4              "FreeTDS Pool"

ns_section ns/db/pool/pool4
  ns_param    maxidle            1000000000
  ns_param    maxopen            1000000000
  ns_param    connections        5
  ns_param    verbose            $debug
  ns_param    extendedtableinfo  true
  ns_param    logsqlerrors       $debug

  ns_param    driver             freetds
  ns_param    datasource         fooserver [also tried fooserver:bardb]
  ns_param    user               sa
  ns_param    password           bazpassword

ns_section ns/server/${server}/db
  ns_param    pools              "*"
  ns_param    defaultpool        pool4

I have the SYBASE environment variable set to /usr/local/etc, which is
where my interfaces file lives.  It looks like this:

fooserver
  query tcp 8.0 192.168.42.107 1433 [I have tried protocol version
4.2 instead of 8.0 and it makes no difference]

Hopefully someone can point me in the right direction.  I've been
banging my head against it for a few days now and I'm afraid that I'm
missing something obvious but am at a loss as to what it might be.

Thanks in advance,

-Cory


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to
<[EMAIL PROTECTED]> with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the
Subject: field of your email blank.

--
Vlad Seryakov
571 262-8608 office
[EMAIL PROTECTED]
http://www.crystalballinc.com/vlad/


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> 
with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.




--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> 
with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.

--
Vlad Seryakov
571 262-8608 office
[EMAIL PROTECTED]
http://www.crystalballinc.com/vlad/


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> 
with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.




--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> 
with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.

--
Vlad Seryakov
571 262-8608 office
[EMAIL PROTECTED]
http://www.crystalballinc.com/vlad/


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> 
with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.

Reply via email to