Please take our Survey
logo       

Choosing A Webhost:
A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web. Web hosts are companies that provide space on a server they own for use by their clients as well as providing Internet connectivity, typically in a data center. Web hosts can also provide data center space and connectivity to the Internet for servers they do not own to be located in their data center, called colocation. more...

RE: Error: FreeTDS+WINE: msg#00111

db.tds.freetds

Subject: RE: Error: FreeTDS+WINE

> >
> > I tried with both iODBC and unixODBC, both TDS7.0 and 8.0,
> same error.
> > So I commented out AC_CHECK_FUNCS(SQLGetPrivateProfileString) in
> > configure.in. So far so good. (Any idea of what is causing
> configure
> > to find the function, and later on say its symbol is undefined?)
>
> Not sure what we're up to there. That's one for Frediano. :-)
>

Mmmm... from configure.in

if test x$odbc = xtrue; then
save_LIBS="$LIBS"
if test x$unixodbc = xtrue; then
LIBS="$LIBS -lodbcinst"
else
LIBS="$LIBS -liodbcinst"
fi
AC_CHECK_FUNCS(SQLGetPrivateProfileString)
LIBS="$save_LIBS"
fi

So lib (odbcinst or iodbcinst) is not added

However in src/odbc/Makefile.am

if UNIXODBC
libtdsodbc_la_LIBADD= ../tds/libtds_objects.la -lodbcinst
$(NETWORK_LIBS) $(LIBICONV) ../replacements/libreplacements.la
else
libtdsodbc_la_LIBADD= ../tds/libtds_objects.la $(NETWORK_LIBS)
$(LIBICONV) ../replacements/libreplacements.la
endif

So should work with unixODBC (it work on my machine with unixODBC)

I never used FreeTDS with WINE... how work wine building so library ?? I
thiugh it build .dll library...

> > I've also noticed in the changelogs that Freddy
> > corrected the SQL_SUCCESS_WITH_INFO / 01S02 / "Invalid
> > option" problem.
> > But the "Invalid option" problem returned, and only went away
> > when I changed
> > the following case statement in odbc.c:4759
> >
> > default:
> > odbc_errs_add(&stmt->errs, "HY092", NULL, NULL);
> > ODBC_RETURN(stmt, SQL_ERROR);
> >
> > to
> >
> > default:
> > odbc_errs_add(&stmt->errs, "HY092", NULL, NULL);
> > ODBC_RETURN(stmt, SQL_SUCCESS_WITH_INFO);
>
> You're masking the problem there. The state "HY092" *is* an
> error, and should be reported as such. It would be much
> better to log the unhandled value and track down what's happening.
>
> AFAICT, HY092 is not a valid SQLSTATE for SQLColAttribute().
> We should use HY091 instead.

James is right...
However the function is SQLSetStmtAttr, not SQLColAttribute. We have to
find missed attribute...
A printf of a log should help, as in

default:
tdsdump_log(TDS_DBG_INFO1, "unknown stmt attribute
%d\n", (int)Attribute);
odbc_errs_add(&stmt->errs, "HY092", NULL, NULL);
ODBC_RETURN(stmt, SQL_ERROR);

>
> > "S1091: [FreeTDS][SQL Server] Descriptor type out of range"
> >
> > I did some research, and it basically means:
> > "The descriptor type, which was given to the ODBC function
> > SQLColAttributes() as an argument is not valid. Change the
> type to an
> > valid decriptor type."
>
> Yes, and we correctly map it to the newer "HY091". I don't
> know under what circumstances you'd get "S1091" instead of
> "HY091". Perhaps that comes from the DM.
>

Perhaps you are using version 2, HY091 is a odbc code (translated
automatically by FreeTDS)

> > > One possible culprit: WINE tried to read SQL_ATTR_ROW_NUMBER with
> > > SQLGetStmtAttr(). You might want to put a logging
> statement there
> > > (odbc.c:2919) to see if it's returning zero.
> >
> > Should I put the logging statement as you suggested, or does
> > the "descriptor type out of range" error mean something else?
>
> I think this is all connected. We want to know the first
> request WINE makes that our ODBC can't answer properly,
> whether because our implementation is incomplete, or because
> the application is asking something silly. By not returning
> an error for HY092, we probably delay the day of reckoning a
> little bit, but the DM or someone eventually sees the
> SQLSTATE and gives up.
>

As you know I'm against returning "is possible" if not...

>
> > > Can you execute spLicenca under unixODBC's isql?
> >
> > Yes, I can execute it with isql and iodbc's odbctest.
> > I confirmed with the people responsible for developing the
> > application...
> > the columns and rows returned by freetds are correct.
>
> If isql can read the results, that's an indication that we
> provide the basic functionality necessary to use spLicenca.
> Your application is clearly doing something that isql is not.
> It may be (see below) it's using ODBC 2.0 constants we don't
> expect.

Using ODBC you can call a procedure without building language string...

I hope you are using latest CVS. 0.61 is still not ready for this
stuff...
Yesterday I fixed last issue with iconv (using GNU iconv). If you use
Linux/FreeBSD you shouldn't have problems with CVS.

>
> > "odbc:SQLColAttribute: fDescType 3 not catered for..."
> > Is this error relevant?
>
> Yes. SQLColAttribute() takes what we call "fDescType" and
> Microsoft calls
> "FieldIdentifier" as the third parameter. The documented
> type constants
> for that parameter all have names beginning with "SQL_DESC_".
> Grepping through the odbc headers[1], I don't find anything
> for "3", but some SQL_DESC constants are defined in terms of
> SQL_COLUMN* types, and I see SQL_COLUMN_LENGTH is defined as
> 3. In the ODBC documentation for SQLColAttribute(), there is
> this note:
>
> "The #define values of the ODBC 2.x FieldIdentifiers
> SQL_COLUMN_LENGTH, SQL_COLUMN_PRECISION, and SQL_COLUMN_SCALE
> are different from the #define values of the ODBC 3.x
> FieldIdentifiers SQL_DESC_PRECISION, SQL_DESC_SCALE, and
> SQL_DESC_LENGTH. An ODBC 2.x driver need only support the
> ODBC 2.x values. An ODBC 3.x driver must support both
> "SQL_COLUMN" and "SQL_DESC" values for these three FieldIdentifiers."
>
> Oh, goodie. That suggests you could add a line after
> src/odbc/odbc.c:1416,
> thus:
>
> case SQL_DESC_LENGTH:
> case SQL_COLUMN_LENGTH:
> IOUT(SQLINTEGER, drec->sql_desc_length);
> break;
>

CVS code should handle SQL_COLUMN_LENGTH in SQLColAttributes but not in
SQLColAttribute (as documented SQLColAttribute do not handle
SQL_COLUMN_*)...
I'll look deeply in documentation... ARGHHHH... I realize the problem...

> You might want to add SQL_DESC_PRECISION and SQL_DESC_SCALE,
> too, while you're at it. ;-)
>
> It also seems to indicate the application is making ODBC 2.0
> calls. :-/ If you can confirm that, then we'll know what to
> look out for. The
> SQLColAttribute() documentation has several "Backward
> Compatibility" notes that might serve as guideposts.
>
> I hope that helps. It seems like you're making some progress.
>
>
> [1] A gripe: For many defined and enumerated types, we have
> reverse lookup tables that return the name of a value. It
> sure would be nice to have such a function for ODBC's
> parameters. Perhaps the DMs have something already?
>

No, DM has nothing....

freddy77


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
hardware.arm.at...    cms.citadel.dev...    video.gstreamer...    java.facelets.u...    misc.basics.qna...    web.wiki.instik...    network.uip.use...    xdg.devel/2003-...    tex.bibtex.bibd...    finance.quotesp...    ietf.zeroconf/2...    redhat.blinux.g...    suse.db2/2003-0...    php.phpesp/2004...    uml.devel/2003-...    gnome.labyrinth...    qnx.openqnx.dev...    boot-loaders.gr...    db.dataperfect....    audio.audacity....    linux.uclinux.m...    editors.j.devel...    os.openbsd.tech...    kde.users.multi...   
Home | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe

Navigation