Giter VIP home page Giter VIP logo

firebird-odbc-driver's People

Contributors

alexpotapchenko avatar arielgmachado avatar dyemanov avatar mariuz avatar mrotteveel avatar paulbeach avatar pcisar avatar reevespaul avatar romansimakov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

firebird-odbc-driver's Issues

Next to ODBC-11 : ADO [ODBC12]

Submitted by: incotec (incotec)

Assigned to: Vladimir Tsvigun (praktik)

Attachments:
ADOSample.zip
idb_SourceForge_bugODBC.zip

Hello,

Thanks a lot for correcting this problem. The problem I mentioned (ODBC11) is corrected!

But, there is a new bug introduced in this v2.0 beta that was not in v1.3 :

In C++, using ADO, when the Microsoft function "Save" for saving a recordset as XML file is called, then Microsoft ado15 dll is called for the SAVE method below

inline HRESULT _Recordset::Save ( const _variant_t & Destination, enum PersistFormatEnum PersistFormat ) {
HRESULT _hr = raw_Save(Destination, PersistFormat);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _hr;
}

The new bug that appears (in v2.0 beta) is that the raw_Save method generates an error when the recordset is empty (no data)!!

Strange...this raises error in v2.0, as the v1.3 was saving an empty recordset as expected...

Thanx a lot

Regards

Bertrand LITTEL

Software engineer

-----Message d'origine-----
Objet : [FB-Tracker] Updated: (ODBC11) Problem with microsoft ADO

 \[ [ODBC11](https://github.com/FirebirdSQL/firebird-odbc-driver/issues?q=ODBC11+in%3Atitle)?page=all \]

Vladimir Tsvigun updated ODBC11:
---------------------------------

            SF\_ID:   \(was: 1469902\)
    Fix Version/s: 2\.0 Beta
Affects Version/s: 2\.0 Beta

fixed version

> Problem with microsoft ADO
> --------------------------
>
> Key: ODBC11
> URL: ODBC11
> Project: ODBC Driver
> Issue Type: New Feature
> Affects Versions: 2.0 Beta
> Reporter: incotec
> Assigned To: Vladimir Tsvigun
> Fix For: 2.0 Beta
>
>
> SFID: 1469902#⁠
> Submitted By: incotec
> Hello,
> First of all, thanks for all, because everything you do is really
> good!
> I use Firebird but for the moment I was using an old ODBC DRIVER that
> was made for Interbase 5. Everything was working fine.
> Now I thought that I should use your ODBC Driver instead. So I
> installed your driver and update to v2.0 last updated april 2006 (this
> week)...because I was expecting my problem/enhancement to be done.
> In fact the problem is that if you use Microsoft ADO to generated an
> XML file based on a SQL Query, the result for NUMERIC field is not the
> one expected.
> You'll find below a sample of VBScript : simply paste it in a TEST.VBS
> file if you want The problem is that in the resulting file I have for
> instance RUNTIME='.0010' as the real value in the database is 10 and
> the field defined as NUMERIC(15,4) The "old" ODBC driver gives the
> good result (gemini and easysoft too...), anq SQL Query tool working
> on ODBC too...only problem comes from Microsoft ADO that makes bad
> interpretation of the precision of the numeric field I think...
> I don't know why, but I hope you can find why!
> Thanks a lot
> SAMPLE:
> Dim connection
> On Error Resume Next
> Set connection = CreateObject("ADODB.Connection")
> If Not connection Is Nothing Then
> With connection
> .CursorLocation = 2
> .ConnectionTimeout = 33
> .ConnectionString
> = "Dsn=ODBC_SCHED_FIREsourceforge;UID=SYSDBA;PWD=master
> key;"
> .Open
> End With
> If Err Then
> MsgBOx Err.Description & vbCrLf & _
> "Reason(s) may be: " & vbCrLf & _
> "* Database Server not started. Check
> server status." & vbCrLf & _
> "* Wrong UserName or Password entered
> in the variables strUid & strPwd." & vbCrLf & _
> "* Invalid DSN found in C_CNNSTR
> CONSTANT." & vbCrLf & _
> "(Note: If the problem persists. Contact your database
> vendor.)"
> ConnectInp = False
> Else
> ExtractXML "C:\SMWT.xml","SMWT"
> End If
> End if
> Sub ExtractXML(filePath, tableName)
> On Error Resume Next
> Set rsTable = CreateObject("ADODB.RecordSet")
>
> Call rsTable.Open("SELECT * FROM " & tableName,
> connection)
> If Err Then MsgBox Err.Description
> Call rsTable.Save(filePath, 1)
> If Err Then MsgBox Err.Description
> Call rsTable.Close
> If Err Then MsgBox Err.Description
> End Sub

Cannot build on x86_64 [ODBC46]

Submitted by: Boris Savelev (boris)

Votes: 1

g++ -g -w -D_REENTRANT -D_PTHREADS -DEXTERNAL -DunixODBC -I/opt/firebird/include -I/usr/include/odbc -Id:/Firebird/include -DNDEBUG -c ../../IscDbc/EnvShare.cpp -o Release/obj/EnvShare.o
../../IscDbc/EnvShare.cpp: In member function 'void IscDbcLibrary::EnvShare::startTransaction()':
../../IscDbc/EnvShare.cpp:105: error: invalid conversion from 'isc_db_handle' to 'void*'
../../IscDbc/EnvShare.cpp:119: error: cannot convert 'void**' to 'isc_tr_handle*' in argument passing
../../IscDbc/EnvShare.cpp: In member function 'void IscDbcLibrary::EnvShare::commit()':
../../IscDbc/EnvShare.cpp:147: error: cannot convert 'void**' to 'isc_tr_handle*' in argument passing
../../IscDbc/EnvShare.cpp: In member function 'void IscDbcLibrary::EnvShare::rollback()':
../../IscDbc/EnvShare.cpp:163: error: cannot convert 'void**' to 'isc_tr_handle*' in argument passing
make: *** [Release/obj/EnvShare.o] Error 1

I think this error because
in ibase.h of firebird:
#⁠if defined(_LP64) || defined(__LP64__) || defined(__arch64__) || defined(_WIN64).
typedef unsigned int<-->FB_API_HANDLE;
#⁠else
typedef void*<-><------>FB_API_HANDLE;
#⁠endif

SQLForeignKey inconsistent schema use: FKTABLE_SCHEM should return NULL not SYSDBA [ODBC39]

Submitted by: faridz (faridz)

My application gets dependency of Firebird database tables info by executing SQLForeignKeys to build dependency graph. SQLForeignKeys returns schema info for imported foreign key table as 'SYSDBA'. It should returns schema for referenced foreign key table as NULL since SQLTables returns schema as NULL for the same table.

    rc = ::SQLForeignKeys\( pSQL\-\>Gethstmt\(\),
        NULL, 0,
        NULL, 0,
        NULL, 0,
\( SQLCHAR \* \)   \( dbo\.sCat\.IsEmpty\(\)   ? NULL : \(LPCTSTR\) dbo\.sCat \),
\( SQLSMALLINT \) cbTableCat,
\( SQLCHAR \* \)   \( dbo\.sSchem\.IsEmpty\(\) ? NULL : \(LPCTSTR\) dbo\.sSchem \),
\( SQLSMALLINT \) cbTableSchem,
\( SQLCHAR \* \)   \(LPCTSTR\) dbo\.sName,
\( SQLSMALLINT \) cbTableName \);

resultset excerpt :
...
PKTABLE_CAT -> NULL
PKTABLE_SCHEM -> NULL
FKTABLE_CAT -> NULL
FKTABLE_SCHEM -> SYSDBA ** should return NULL **

Commits: d725eb8 933b020

SQLColAttribute SQL_DESC_OCTET_LENGTH [ODBC6]

Submitted by: faridz (faridz)

Assigned to: Vladimir Tsvigun (praktik)

SFID: 1418693#⁠
Submitted By: faridz

SQLColAttribute SQL_DESC_OCTET_LENGTH and
SQL_DESC_NUM_PREC_RADIX for a resultset column returns
an error:

SQL Error, SQLState: HY091, Return Code: -1
[ODBC Firebird Driver]field id (<x>) out of range

for example,
SQLUSMALLINT nCol = 1;
SQLPOINTER nBufferLength = 0;

// describe buffer length
rc = SQLColAttribute\( hstmt,
                      nCol,
                      SQL\_DESC\_OCTET\_LENGTH,
                      NULL,
                      0,
                      NULL,
                      &nBufferLength \);

Driver:
Firebird/InterBase(r) driver 2.00.00.126

See attached MSVC project for reproducing this error.

Unify Single-Thread and Multi-Thread drivers, add parameter to specify one [ODBC14]

Submitted by: Jorge Andres Brugger (jbrugger)

Assigned to: Vladimir Tsvigun (praktik)

Now there are 2 driver versions: "Firebird ODBC driver" and ""Firebird ODBC driver MT". First is single thread and second is multi thread. They share (as I can deduce) 99% of code, and only a part defines the threading model.
I think will be better if both drivers/files were unified into single file, adding a new parameter to DSN dialog and connection string, instead of maintaining separate drivers.

Reimplement ODBC {fn IFNULL} function using Firebird's COALESCE function. [ODBC41]

Submitted by: Clinton L. Warren (justdoro)

Votes: 1

The current ODBC driver {fn IFNULL} function implementation maps to a function named "IFNULL". By default, there is no such function in a Firebird database. Therefore, code that depends on the {fn IFNULL} function will fail.

Firebird 1.5 and above implements the function COALESCE, which could be used to implement the {fn IFNULL} function.

Commits: daf8b7a 71cdd0e

exception when using recordset .move in ASP [ODBC9]

Submitted by: mdahmke (mdahmke)

Assigned to: Vladimir Tsvigun (praktik)

SFID: 1161092#⁠
Submitted By: mdahmke

I'm running FB1.5.2 on Redhat ES3 and the ibphoenix
odbc driver (I've tried 1.2, 1.3 and 2.0) on Win2003.

After conn.execute, if I try to do a recordset.move it will
only let me move forward a small number of records...
this varies with the record size. For example, if I have a
table with one integer field and one varchar(100) I can
move to about record 330 but if I move to 331 I get an IIS
exception that requires a restart of the application pool.

On another table with:
ID INTEGER Nullable
NUM VARCHAR(50) Nullable
COMPANYNAME VARCHAR(255) Nullable
ADDRESS1 VARCHAR(255) Nullable
ADDRESS2 VARCHAR(255) Nullable
CITY VARCHAR(255) Nullable
STATE VARCHAR(255) Nullable
ZIP VARCHAR(255) Nullable
PHONE VARCHAR(255) Nullable
FAX VARCHAR(255) Nullable
EMAIL VARCHAR(255) Nullable
URL VARCHAR(255) Nullable
OFFICE VARCHAR(50) Nullable

I can move to record 22, but a move to 23 generates an
exception. Both tables have several thousand records.

thanks

Joining Oracle 11g and Firebird with restriction [ODBC54]

Submitted by: Karsten Hauser (khauser)

The statement:

SELECT http://pe.NR, us.USER_LOGIN
FROM IBKPVS_SYS_USER us
LEFT JOIN PERSONAL@formica pe ON us.USER_PERS_ID_FK = http://pe.NR
where us.USER_LOGIN = 'ADMIN'

placed in Oracle delivers following error msg:
ORA-28500: Verbindung von ORACLE zu Fremdsystem gab diese Nachricht zurück:
[ODBC Firebird Driver]Data truncated[ODBC Firebird Driver][Firebird]Dynamic SQL Error
SQL error code = -303
conversion error from string " "
ORA-02063: vorherige 4 lines von FORMICA

for help the statement:
SELECT http://pe.NR, us.USER_LOGIN
FROM IBKPVS_SYS_USER us
LEFT JOIN PERSONAL@formica pe ON us.USER_PERS_ID_FK = http://pe.NR
where TRIM(us.USER_LOGIN) = 'ADMIN'

delivers the right result set (1->Number,'ADMIN'->String)

Output parameter stops work after first commit [ODBC49]

Submitted by: Vladimir Kozlov (vkozlov)

Attachments:
Program.cs

Under http://ADO.NET OdbcCommand, if we make subsequent calls of a stored procedure via ODBC driver (each call in a new transaction), the output parameters returns correctly only at first call. Once the first call was executed, the output parameters in next transaction returns empty.
Same calls using native .NET provider works correctly.

Commits: 0692110 612929d

Problem in adding File DSN [ODBC24]

Submitted by: Andrew Webb (andyuk)

To reproduce:
Install latest version of Firebird 1.0
Install latest Firebird OBDC driver 3.51.12

I have not changed the default username/password from sysdba/masterkey

In Control Panel -> Administrative Tools -> Data Sources (ODBC) select "File DSN" tab
Select Add and select Firebird/Interbase(r) driver
Give it a name and try to finish.

For the Account and Password fields I tried sysdba and masterkey respectively, and left role blank.
The message received is

A connection could not be made using the file data source parameters entered. Save the non-verified file DSN?

The problem is in trying to create a new File DSN in ODBC setup.

I think this may be related to problems I've encountered with setting up a
database connection. I get very simular problem when using MySQL too.
This code (specifically the SQLDriverConnect() ) works fine with Access and SQL server:

SQLHENV hEnv = SetupSiteDbApp::GetApp\(\)\-\>GetOdbcSession\(\)\.GetEnvHandle\(\);

//
// Create a connection
//
SQLHDBC hConn = NULL;

SQLRETURN nStatus = SQLAllocHandle\( SQL\_HANDLE\_DBC, hEnv, &hConn \);

if \( \!SQL\_SUCCEEDED\( nStatus \) \)
\{
    AfxMessageBox\( IDS\_ERROR\_CREATEDBCONN, MB\_ICONEXCLAMATION \);
    return false;
\}

//
// Create the DSN with user prompting
//
strFile = AUDIT\_LOG\_DSN\_FILE;

std::wstring strDsnPath = FileUtil::JoinPath\(
                                m\_pSetupInfo\-\>m\_strLocation,
                                strFile
                                \);

std::wstring strConn = StringPrintf\(
                            L"DRIVER=\{%s\}; SAVEFILE=%s",
                            m\_pSetupInfo\-\>m\_strOdbcDriver\.c\_str\(\),
                            strDsnPath\.c\_str\(\)
                            \);

SQLWCHAR szConnOut\[ MAX\_CONNECT\_STRING \];
SQLSMALLINT nCount;

nStatus = SQLDriverConnect\(
                hConn,
                m\_hWnd,
                \(SQLWCHAR \*\) strConn\.c\_str\(\),
                \(SQLSMALLINT\) strConn\.length\(\),
                szConnOut,
                sizeof\( szConnOut \) / sizeof\( szConnOut\[ 0 \] \),
                &nCount,
                SQL\_DRIVER\_PROMPT
                \);    

if \( \!SQL\_SUCCEEDED\( nStatus \) \)
\{     
    /\* while \( SQLError\( hEnv, hConn, hHstmt, sqlstate, &sqlcode, buffer,
        SQL\_MAX\_MESSAGE\_LENGTH \+ 1, &length\) == SQL\_SUCCESS \)
    \{
        printf\("\\n \*\*\*\* ERROR \*\*\*\*\*\\n"\);
        printf\("         SQLSTATE: %s\\n", sqlstate\);
        printf\("Native Error Code: %ld\\n", sqlcode\);
        printf\("%s \\n", buffer\);          
    \}; \*/

    AfxMessageBox\( IDS\_ERROR\_CREATEDBCONN, MB\_ICONEXCLAMATION \);
    SQLFreeHandle\( SQL\_HANDLE\_DBC, hConn \);
    return false;
\}

The third parameter passed to SQLDriverConnect() is "DRIVER={Firebird/Interbase(r) driver}; SAVEFILE=C:\IndigoAudit\audit.dsn"

Error info captured:

error code: 08001
error string: "unavailable database"

The drive is definitely there as its listed as one of the ODBC drivers...

Hope this information is understandable. Please ask if you need any other
information or clarification.

Andy

SQLGetTypeInfo missing rows for unicode data types [ODBC26]

Submitted by: faridz (faridz)

SQLGetTypeInfo does not return a row for any of the following supported Firebird data types:

SQL_WCHAR -> CHAR(x) CHARACTER SET UNICODE_FSS
SQL_WVARCHAR -> VARCHAR(x) CHARACTER SET UNICODE_FSS
SQL_WLONGVARCHAR -> BLOB SUB_TYPE TEXT
SQL_TINYINT -> SMALLINT

Commits: 98264c8 02983ea

problem with copying data base [ODBC47]

Submitted by: daoud (daoud_atta)

i make and a database in firebird and change the sysdba password.
I then copy it to other pc and i try to open the database by the using default user ('sysdba' and password 'masterkey') and it opened and i can access the data
how can i solve this problen and not let the user access the database
thank
daoud atta
senior software developer

build problems with gcc-4.3.2 [ODBC51]

Submitted by: Treeve Jelbert (treeve)

Assigned to: @dmitry-starodubov

Attachments:
odbcfb-RC1-2.0.0148.bz2

several build problems. I fixed most of them with the following edit script

#⁠ gcc-4.3.2 fixes
sed -i "s/g++/g++ $CXXFLAGS -std=c++0x/" Builds/Gcc.lin/makefile.linux &&
sed -i '/stdlib/ a\
#⁠include <cstdint>
' IscDbc/IscBlob.cpp IscDbc/IscArray.cpp IscDbc/IscProceduresResultSet.cpp \
IscDbc/Sqlda.cpp IscDbc/TypesResultSet.cpp

However, there is remaining error which I cannot fix
g++ -march=k8 -fPIC -DPIC -pipe -O3 -std=c++0x -fPIC -DNDEBUG -c ../../MainUnicode.cpp -o
Release/obj/MainUnicode.o
../../Main.cpp: In function 'SQLRETURN SQLError(void*, void*, void*, SQLCHAR*, SQLINTEGER*,
SQLCHAR*, SQLSMALLINT, SQLSMALLINT*)':
../../Main.cpp:300: error: no matching function for call to
'OdbcJdbcLibrary::OdbcStatement::sqlError(SQLCHAR*&, SQLINTEGER*&, SQLCHAR*&, SQLSMALLINT&, SQLSMALLINT*&)'
../../OdbcObject.h:64: note: candidates are: virtual SQLRETURN
OdbcJdbcLibrary::OdbcObject::sqlError
(UCHAR*, SDWORD*, UCHAR*, int, SWORD*)
../../Main.cpp:306: error: no matching function for call to
'OdbcJdbcLibrary::OdbcConnection::sqlError(SQLCHAR*&, SQLINTEGER*&, SQLCHAR*&, SQLSMALLINT&, SQLSMALLINT*&)'
../../OdbcObject.h:64: note: candidates are: virtual SQLRETURN
OdbcJdbcLibrary::OdbcObject::sqlError
(UCHAR*, SDWORD*, UCHAR*, int, SWORD*)
../../Main.cpp:310: error: no matching function for call to
'OdbcJdbcLibrary::OdbcEnv::sqlError(SQLCHAR*&, SQLINTEGER*&, SQLCHAR*&, SQLSMALLINT&, SQLSMALLINT*&)'
../../OdbcObject.h:64: note: candidates are: virtual SQLRETURN
OdbcJdbcLibrary::OdbcObject::sqlError
(UCHAR*, SDWORD*, UCHAR*, int, SWORD*)
make: *** [Release/obj/Main.o] Error 1

Commits: bf5a4b0 03f3fd1 db26564 d594ab8 b540315

SQLTables TABLE_SCHEM not valid [ODBC2]

Submitted by: faridz (faridz)

Assigned to: Vladimir Tsvigun (praktik)

SFID: 1442697#⁠
Submitted By: faridz

::SQLTables does not return a valid TABLE_SCHEM value
in the resultset ( returns just a single quote ). Using
row bind offsets. You can download application from
http://www.zidsoft.com

Driver:
Firebird/InterBase(r) 2.00.00.126

Embedded database version is 1.5.3

I can provide a sample MSVC project to duplicate this
bug if needed.

odbc driver can not get the list of tabels from the datasource [ODBC48]

Submitted by: Raymond Dijkstra (raymond)

The odbc driver can connect with a udl to a firebird database. The test connection works fine.
When a application like office-word wil connect to the database then appears the message "odbc driver can not get the list of tabels from the datasource".

Also the combination with a firebird server 32 bit on a 64 bits windows 2003 server has the same problem.

When i connection the client to a windows 2003 server (32bits) with firebird server 2.1 (32bits) then the connection is working fine.

Is the problem in the odbc driver of in the Firebird server?

-mydatabase.udl
[oledb]
; Everything after this line is an OLE DB initstring
Provider=MSDASQL.1;Password=OFFICE;Persist Security Info=True;User ID=OFFICE;Extended Properties="DSN=ArbisFb_odbc;Driver=Firebird/InterBase(r) driver;Dbname=sr014:d:\IBDATABASE\SBCBASISDB.GDB;CHARSET=NONE;PWD=OFFICE;UID=OFFICE;Client=C:\Arbis\gds32.dll;"

Type conversion bug [ODBC30]

Submitted by: Jorge Andres Brugger (jbrugger)

Assigned to: Vladimir Tsvigun (praktik)

Attachments:
SQL_LOG.7Z

There is some kind of error in conversion of datatypes with new 143 build. Build 142 works fine. Attached is log.

Commits: f06d8f2 0955c4a

SQLTables SQL_ALL_TABLE_TYPES duplicates [ODBC3]

Submitted by: faridz (faridz)

Assigned to: Vladimir Tsvigun (praktik)

SFID: 1418710#⁠
Submitted By: faridz

Executing SQLTables with SQL_ALL_TABLE_TYPES resultset
has 34 duplicate entries for SYSTEM TABLE and TABLE.
Also missing VIEW table type

Driver:
Firebird/InterBase(r) 2.00.00.126

See attached MSVC project for reproducing this issue

Commits: ae5e378

Timestamp parameters of stored procedures get assigned as date [ODBC27]

Submitted by: Milan Babuskov (babuskov)

I have Delphi code like this:

storedProc: TADOStoredProc;
storedProc := TADOStoredProc.Create(nil);
try
with storedProc do
begin
ProcedureName := 'SetMyTime';

with Parameters\.AddParameter do
begin
  Name := '@Id';
  DataType := ftInteger;
  Value := 1;
end;

with Parameters\.AddParameter do
begin
  Name := '@MyTime';
  DataType := ftDateTime;
  Value := now;
end;

ExecProc;
end;

The call succeeds, but only date part is written into database. Here's how the stored procedure looks like:

create table t1 ( x integer, tm timestamp );
insert into t1 (x, tm) values (1, current_timestamp);

create procedure SetMyTime ( id integer, mytime timestamp )
as
begin
update t1 set tm = :mytime where x = :id;
end

FireBird data is truncated though Oracle DB LINK [ODBC25]

Submitted by: Harish Mekwana (harishmekwana)

hi,
we have a problem, when we are accessing data thorugh oracle db link the varchar rows of FireBird are truncating.
Kindly Let us know what is the problem .
Also when we access data through ODBC Driver then the data is displayed correctly. But not through DB LINK. Is it a problem with Fire Bird or its ODBC Driver.
Kindly tell us the solution ASAP.

regards

Harish

status_exception thrown and caught on every access due to trying to close already closed cursor (patch) [ODBC29]

Submitted by: Vaclav Slavik (vslavik)

Assigned to: Vladimir Tsvigun (praktik)

Attachments:
IscStatement.cpp.HEAD.patch

When using ODBC driver against embedded Firebird server, my application would throw and catch status_exception during every ODBC query. The exception was caught, so this was only annoying because it polluted debug log when running under VC++ debugger, plus it has performance impact, but it's not fatal.

Turns out that it happens because for auto-commit transactions, IscStatement::deleteResultSet() first calls commitAuto(), which closes the cursor, and then calls _dsql_free_statement() with DSQL_close flag, i.e. it requests that the cursor is closed. This fails because the cursor was already closed and status_exception is thrown.

Attached patch (against CVS HEAD) fixes this.

Commits: f06d8f2

BLOB text column is not transliteration with UTF8 connection. [ODBC44]

Submitted by: Minoru Yoshida (timeful2)

Votes: 1

I'm testing for OdbcFb_v2_0_145_Win32.

The VARCHAR/CHAR columns are working fine with UTF8 connection.
But BLOB text column is not transliteration.
I tried change to the CP943C connection. This BLOB's transliteration is fine.

I think that UTF8 connectioin result is odbc driver side bug since build 144.

My environments:

- WindowsXP sp2
- Firebird V2.1.1
- Excel 2003 japanese edition.

/* Create database */
CREATE DATABASE 'Localhost:TestDB'
USER 'sysdba'
PASSWORD 'password'
PAGE_SIZE 16384
DEFAULT CHARACTER SET UTF8;
SET SQL DIALECT 3;

/* Create table */
CREATE TABLE Table1 (
K INTEGER NOT NULL, B BLOB SUB_TYPE TEXT SEGMENT SIZE 80
, CONSTRAINT PK PRIMARY KEY (K));

-- My test code
Sub Fbodbctest()
Dim con As ADODB.Connection
Dim recordSet As ADODB.recordSet
Dim outPutSheet As Worksheet
Dim row As Long
Dim col As Long

Set con = New ADODB\.Connection
Set recordSet = New ADODB\.recordSet
Set outPutSheet = ThisWorkbook\.Sheets\("Sheet1"\) 'Output sheet
outPutSheet\.Cells\.Clear

'
con.Open "DRIVER=Firebird/InterBase(r) driver; SERVER=localhost; DATABASE=TestDB;" & _
"Extended Properties=""UID=sysdba;PWD=password;CHARSET=UTF8;"""
' "Extended Properties=""UID=sysdba;PWD=password;CHARSET=CP943C;"""
recordSet.Open "select * from Table1", con, adOpenForwardOnly, adLockReadOnly, -1

'Field names to row
For col = 0 To recordSet\.Fields\.Count \- 1
    outPutSheet\.Cells\(1, col \+ 1\)\.Value = recordSet\.Fields\(col\)\.Name
Next col

'Field values to row
row = 2
While (Not recordSet.EOF) And row < 60000
For col = 0 To recordSet.Fields.Count - 1
outPutSheet.Cells(row, col + 1).Value = recordSet.Fields(col).Value
Next col
recordSet.MoveNext
row = row + 1
Wend

recordSet\.Close
con\.Close

End Sub

--
Regards,
Minoru

Runtime error... abnormal termination [ODBC35]

Submitted by: Bronnikov Vladimir (vsbronnikov)

Hello!

When the connection is lost and I try to open stored procedure (StoredProc1.Open in Delphi) I receive following message and my application close:
---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Runtime Error!
Program: ...\*.exe
abnormal program termination

If I open query (TADOQuery) then my application handle exception: "Unable to complete network request to host...".
Why Stored procedure throw this exception and close my application? Is this a bug?

По русски:

Когда я открываю хранимую процедуру (.Open, не .Exec) при отключенном подключении с БД выводится сообщение (читай выше) и мое приложение закрывается.
Хотя если я вызываю обычный запрос (объект TADOQuery), то моя программа отлавливает исключение "Unable to complete network request".
Почему при открытии хранимой процедуры вываливается такое исключение, закрывающее мое приложение? Это ошибка?

--
С уважением, Бронников Владимир

Access-related multi DB problem [ODBC32]

Submitted by: Jorge Andres Brugger (jbrugger)

Attachments:
SQL.142.LOG.7z
SQL.145.LOG.7z
OdbcFb32.zip
SQL.LOG.B142.7z
SQL.LOG.B144.7z

Attached are two files, both of them are logs of exactly same Access query, one using ODBC build 144 and the other using ODBC build 142.
b142 works fine, b144 has problems with checks.

Query is:

IINSERT INTO CLIENTES ( CODIGO, NOMBRE, PERSONA_CONTACTO, TELEFONO, FAX, CORREO_ELECTRONICO, DOMICILIO, CODIGO_POSTAL, LOCALIDAD, PROVINCIA, CUIT, NUMERO_INGRESOS_BRUTOS, CODIGO_SITUACION_IVA, TIPO_DOCUMENTO_EMISION, HABILITADO_CUENTA_CORRIENTE, TOPE_CREDITO, SUSPENDIDO, MOSTRAR_OBSERVACIONES, OBSERVACIONES, NUMERO_LEGAJO, ENTIDAD_LEGAJO, CREDITOS_SOLO_TITULAR, DESCUENTO_POR_PLANILLA, CUENTA_CORRIENTE_UNIFICADA, UPDATE_TIMESTAMP )
SELECT CLIENTES2.CODIGO, CLIENTES2.NOMBRE, CLIENTES2.PERSONA_CONTACTO, CLIENTES2.TELEFONO, CLIENTES2.FAX, CLIENTES2.CORREO_ELECTRONICO, CLIENTES2.DOMICILIO, CLIENTES2.CODIGO_POSTAL, CLIENTES2.LOCALIDAD, CLIENTES2.PROVINCIA, CLIENTES2.CUIT, CLIENTES2.NUMERO_INGRESOS_BRUTOS, CLIENTES2.CODIGO_SITUACION_IVA, CLIENTES2.TIPO_DOCUMENTO_EMISION, CLIENTES2.HABILITADO_CUENTA_CORRIENTE, CLIENTES2.TOPE_CREDITO, CLIENTES2.SUSPENDIDO, CLIENTES2.MOSTRAR_OBSERVACIONES, CLIENTES2.OBSERVACIONES, CLIENTES2.NUMERO_LEGAJO, CLIENTES2.ENTIDAD_LEGAJO, CLIENTES2.CREDITOS_SOLO_TITULAR, CLIENTES2.DESCUENTO_POR_PLANILLA, CLIENTES2.CUENTA_CORRIENTE_UNIFICADA, CLIENTES2.UPDATE_TIMESTAMP
FROM CLIENTES2 LEFT JOIN CLIENTES ON CLIENTES2.CODIGO = CLIENTES.CODIGO
WHERE (((CLIENTES.CODIGO) Is Null));

Commits: ec0dca9 fe04638 5410be9

Rename "OK" Button to "Close" in Services window [ODBC19]

Submitted by: Jorge Andres Brugger (jbrugger)

Assigned to: Vladimir Tsvigun (praktik)

"Ok" is for accept and start an operation, generally. At services tab,
OK button does nothing, except close the Window, as there are "action
buttons" for each service available. So, I think OK Button should be
renamed to "Close".

Commits: 2a4a6fb

SQLExecDirect update statement no rows affected return code [ODBC5]

Submitted by: faridz (faridz)

Assigned to: Vladimir Tsvigun (praktik)

SFID: 1449955#⁠
Submitted By: faridz

When executing an update sql statement using
::SQLExecDirect and no rows are affected by the update,
the driver returns an SQLRETURN code SQL_SUCCESS.
Should return SQL_NO_DATA_FOUND instead per ODBC spec.

MS Documentation for SQLExecDirect:
..
If SQLExecDirect executes a searched update or delete
statement that does not affect any rows at the data
source, the call to SQLExecDirect returns SQL_NO_DATA

Driver Firebird/InterBase(r) driver MT 2.00.00.126

Commits: 2fa7525 69c7457

Problem with ADO after Realese 135 [ODBC13]

Submitted by: irfan karakas (irfan.karakas)

Assigned to: Vladimir Tsvigun (praktik)

Votes: 1

After bug fix "Tracker Key: ODBC5";
When ODBC return "SQL_NO_DATA_FOUND" ADO return an error "Unspecified error"
How can i solve this problem without changing the project code.

Thanks for help,

Log file not rendered correctly by Internet Explorer [ODBC23]

Submitted by: Jorge Andres Brugger (jbrugger)

Even if Internet Explorer is not the default system browser, "View log" opens IE for showing log, but it?s rendered/viewed as text file, instead of html file. Maybe this is due to log file extension, which is "tmp" instead of "htm".
Also default browser should be used, not always IE.

Commits: dcf2e7d 842bac8

Can not find firebirdsql.data.firebirdclient.dll on Windows Server 2008 [ODBC42]

Submitted by: Mickael (ideki)

Hi, I installed the Firebird-2.1.0.17798_0_x64 on a Windows Server 2008 x64.
I also installed the Firebird-2.1.0.17798-0_x64_embed.

I wrote a test software in C#⁠ to access a firebird database.
In version 2.0 of Firebird, I could reference a dll call FirebirdSQL.Data.FirebirdClient.dll
After the install on Windows Server 2008 x64, I can not find that dll anywhere.

Is it missing from the install, was it moved or renamed, or the logic to access the database changed?

Parameters data truncation from SQL_C_CHAR to SQL_INTEGER or SQL_DECIMAL [ODBC38]

Submitted by: Domfe (domfe_tiscali.it)

Attachments:
testcase1.c
OdbcFb.zip
OdbcFb.zip

When a parameter is of type SQL_INTEGER, SQL_DECIMAL or SQL_NUMERIC data truncation occurs if the C type is SQL_C_CHAR.
The truncation affects number at the maximum size for the column.

SQL_C_CHAR -> SQL_INTEGER
+1234567895 -> 123456789
the last 5 is lost (123456789): it seems that the driver uses only the first ten character and not the first ten digits.

SQL_C_CHAR -> SQL_DECIMAL (9,3)
-123456.789 -> -123456.700
lost 2 digits: again the driver uses only the first nine character regardless if they were digits or not (sign or decimal dot)

Commits: 6b0a4ef 5a58c5b

Data appears sometimes wrong in Access/Excel [ODBC50]

Submitted by: Steven van der Wal (s.vdwal)

Relate to ODBC53

Attachments:
Access.jpg
Excel.jpg
test.fbk
OdbcFb_DLL_2-0-0149_Win32.zip

I created a new database "c:\test.fdb", SQL dialect 3, character set none.

Create one table:
CREATE TABLE LB2_UITSLAGEN (
BEPALINGSCODE VARCHAR(4) NOT NULL,
BUITEN_REFERENTIE VARCHAR(1),
UITSLAGOPMERKINGSCODE VARCHAR(4)
);

COMMIT WORK;

...and some data...
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', 'L', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', 'L', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');
INSERT INTO LB2_UITSLAGEN (BEPALINGSCODE, BUITEN_REFERENTIE, UITSLAGOPMERKINGSCODE) VALUES ('KA0D', '', '');

COMMIT WORK;

On the client I set up an ODBC connection. In Access-2003 I made a link to this table (use no unique record id).

If I open this table, Access shows the data wrong. In the second column "Buiten_referentie" appears sometimes the first letter of the first column "Bepalingscode". Strange is, that if you ORDER the table in Access (Right klik; order ascending), the data is correct. If you make a query on the table, it is the same. No ordering shows wrong data ("K" in the second column); ordering shows everting OK.

This is what you see in Access with no ordering:

BEPALINGSCODE BUITEN_REFERENTIE UITSLAGOPMERKINGSCODE
KA0D
KA0D L
KA0D
KA0D K
KA0D
KA0D K
KA0D
KA0D K
KA0D
KA0D K
KA0D L
KA0D K
KA0D K
KA0D K
KA0D K

In Excel-2003 it also goes wrong; you can see squares (non printables) in the second column...

If I use the old ODBC driver IBclient version 5.6, everthing is OK. Also the firebird ODBCdriver 1.2.0.69 works fine.

I hope this problem can be reproduced and solved. I you need more information, I will send it to you.

Problem with microsoft ADO [ODBC11]

Submitted by: incotec (incotec)

Assigned to: Vladimir Tsvigun (praktik)

SFID: 1469902#⁠
Submitted By: incotec

Hello,

First of all, thanks for all, because everything you
do is really good!

I use Firebird but for the moment I was using an old
ODBC DRIVER that was made for Interbase 5. Everything
was working fine.

Now I thought that I should use your ODBC Driver
instead. So I installed your driver and update to v2.0
last updated april 2006 (this week)...because I was
expecting my problem/enhancement to be done.

In fact the problem is that if you use Microsoft ADO
to generated an XML file based on a SQL Query, the
result for NUMERIC field is not the one expected.

You'll find below a sample of VBScript : simply paste
it in a TEST.VBS file if you want

The problem is that in the resulting file I have for
instance RUNTIME='.0010' as the real value in the
database is 10 and the field defined as NUMERIC(15,4)

The "old" ODBC driver gives the good result (gemini
and easysoft too...), anq SQL Query tool working on
ODBC too...only problem comes from Microsoft ADO that
makes bad interpretation of the precision of the
numeric field I think...

I don't know why, but I hope you can find why!

Thanks a lot

SAMPLE:
Dim connection
On Error Resume Next

Set connection = CreateObject\("ADODB\.Connection"\)
If Not connection Is Nothing Then
    With connection
        \.CursorLocation = 2
        \.ConnectionTimeout = 33
        \.ConnectionString 

= "Dsn=ODBC_SCHED_FIREsourceforge;UID=SYSDBA;PWD=master
key;"
.Open
End With

    If Err Then
        MsgBOx Err\.Description & vbCrLf & \_
        "Reason\(s\) may be: " & vbCrLf & \_
        "\*     Database Server not started\. Check 

server status." & vbCrLf & _
"* Wrong UserName or Password entered
in the variables strUid & strPwd." & vbCrLf & _
"* Invalid DSN found in C_CNNSTR
CONSTANT." & vbCrLf & _
"(Note: If the problem persists. Contact
your database vendor.)"
ConnectInp = False
Else
ExtractXML "C:\SMWT.xml","SMWT"
End If
End if

Sub ExtractXML(filePath, tableName)
On Error Resume Next

Set rsTable = CreateObject\("ADODB\.RecordSet"\)

Call rsTable\.Open\("SELECT \* FROM " & tableName, 

connection)
If Err Then MsgBox Err.Description

Call rsTable\.Save\(filePath, 1\)
If Err Then MsgBox Err\.Description            

Call rsTable\.Close
If Err Then MsgBox Err\.Description            

End Sub

Wrong default transaction isolation level [ODBC10]

Submitted by: nikulitsa (nikulitsa)

Assigned to: Vladimir Tsvigun (praktik)

SFID: 917309#⁠
Submitted By: nikulitsa

Default isolation level is serializable insted of Read
commited.
I have found mistake in function:
void IscConnection::startTransaction()
.....
.....
case 0x00000002L:
default:
// SQL_TXN_READ_COMMITTED:

/*The following condition is wrong
because TRA_nw is const that declared in
Connection.h as #⁠define TRA_nw 2 */

if ( TRA_nw )
{
iscTpb[3] =
isc_tpb_no_rec_version;
count = 4;
}
else
{
iscTpb[3] =
isc_tpb_read_committed;
iscTpb[4] =
isc_tpb_no_rec_version;
}
break;
}

Connection giving error - "isc_attach_database failed" [ODBC17]

Submitted by: Rishi Ravindran (rishikt)

Assigned to: Vladimir Tsvigun (praktik)

isc_attach_database failed

The user does not have permission to perform this operation on this object.

Engine code: 335544352
Engine Message: no permission for read-write access to database

1. My application uses Firebird database. I have an installed and a source code version of it. There is a separate database created and used locally in each (debug and installed versions) application directory.

2. Debugging the source code version of the software and doing an extended run of it somehow corrupted its local copy of the database.

3. Now, I am unable to connect to it from the source code version application and gives the following error when I do so from FlameRobin and Firebird ISQL,

------------------------------------------------------------------

isc_attach_database failed

The user does not have permission to perform this operation on this object.

Engine code: 335544352
Engine Message: no permission for read-write access to database

------------------------------------------------------------------

4. After moving the corrupt database from the debug applcation directory to the install directory and trying a connect from there fails with the same error hence confirming the fact that the database is indeed corrupt.

5. Now this is peculiar. Moving the non-corrupted database from the install folder to the debug application folder still gives the same error. I thought earlier that just the database was corrupted.

6. Deleting the corrupted database from the debug directory and trying to create a new database at the same location gives the following error,

"Error string not found for error no 24"

Once again this makes me think that somehow the directory is also affected because of the corrupted database.

Please give suggestions/resolutions if any.

No SQL_DBMS_NAME for InterBase 7.5 [ODBC1]

Submitted by: faridz (faridz)

Assigned to: Vladimir Tsvigun (praktik)

SFID: 1476027#⁠
Submitted By: faridz

Driver returns empty string for Borland InterBase 7.5
server connection. SQLGetInfo SQL_DBMS_NAME call.

Driver version:
Firebird/InterBase(r) driver MT 2.00.00.126

WIN32 : Can't Link Table with INTERSOLV [ODBC7]

Submitted by: ricolebo (ricolebo)

Assigned to: Ann Harrison (awharrison)

SFID: 483322#⁠
Submitted By: ricolebo

With the lastest version WI-T1.0.0.567 i have this
error when i atempt to link tables with INTERSOLV ODBC
driver in Access97 :

Error #⁠:-204
[INTERSOL][ODBC InterBase driver][Interbase]Dynamic SQL
Error, SQL Error Code = -204,
Ambigous Field Name between Table/View RDB$RELATION and
table/view RDB$RELATION_FIELDS, RDB$RELATION_NAME
Error #⁠:3184
Cannot Execute Query; Link table not found.

Number of affected rows is always zero for successful insert or update [ODBC21]

Submitted by: Ariel Kempf (ak)

When performing successful inserts or updates, I always get the number of affected rows equal to zero. I'm using the ODBC library built in PHP to connect to a Firebird database. In principle, the problem is not with the PHP ODBC interface, since accessing other databases such as MySQL and MSSQL using ODBC I get the correct results.
Here's a sample code to reproduce the problem:

if ( !$id = odbc_connect($dsn, $db_user, $db_pass) )
die( "Not connected. " . odbc_errormsg() );

$put = date("l dS of F Y h:i:s A");
$q = "update BINDATA set STRINGS = '$put' where ID=1";
$result = odbc_exec( $id, $q );
$n = odbc_num_rows($result);
echo "Affected lines: $n<BR>"; // Will output 0.

$q = "insert into BINDATA(ID, STRINGS) VALUES(2, '$put')";
$result = odbc_exec( $id, $q );
$n = odbc_num_rows($result);
echo "Affected lines: $n<BR>"; // Will also output 0.

odbc_close($id);

This sample code works well when connecting to MySQL or MSSQL with their respective ODBC drivers. Any chances that the problem is in the OdbcStatement::sqlRowCount() method?

{t } and {d } escape secuences and space [ODBC33]

Submitted by: Yury Sidorov (jusid)

The driver accepts date and time in following formats: {d 'YYYY-MM-DD'} and {t 'HH:MM:SS'}
It does not accept if there is no space after {d or {t like this: {d'YYYY-MM-DD'} and {t'HH:MM:SS'}
ODBC drivers for other servers (MSSQL, MySQL, Oracle) accept date and time without space.
Also Firebird ODBC driver accepts timestamp {ts'YYYY-MM-DD'} with and without space.

It will be great to tweak {t} and {d} to work without space as well.

Commits: 3bf2730 e8f82b6

Autoquoted Identifier does not work for INSERT statements [ODBC28]

Submitted by: Eduardo Gamboa (bestrafender)

Assigned to: Vladimir Tsvigun (praktik)

When a table uses reserved words as column names, i.e.:
CREATE TABLE "DATES" (
"YEAR" INT,
"MONTH" INT,
"DAY"INT);
and you execute:
SELECT * FROM "DATES"

It will throw an exception unless you configure the odbc to use Autoquoted Identifier.

Once the odbc is configured to use autoquoted identifier SELECT and UPDATE statements work perfectly, but INSERT statements like: INSERT INTO "DATES" VALUES (2007,6,18) would not work.

Values stored in numeric fields multiplied by <precission> when using INSERT INTO OPENROWSET() with Ttransact SQL [ODBC16]

Submitted by: Thomas V?lker (tgvoelker)

Assigned to: Vladimir Tsvigun (praktik)

Attachments:
TRACE.LOG

When performing an INSERT query on a rowset using similar source as shown below, values of numerc fields are not stored correctly.

Used source:
INSERT INTO OPENROWSET('MSDASQL.1','DSN=<IB-DSN>','SELECT * FROM TABLENAME')
(INDEXFIELD,NUMERICFIELD)VALUES(10,4.5);

The field NUMERICFIELD is defined as NUMERIC(15,2). The value stored in the database is 450 instead of 4.5.

I also checked other precissions - when precission 10,3 is used, the value stored is 4500.

Using the Gemeni driver everything works fine.

Incorrect primary key when linking tables in MS Access [ODBC45]

Submitted by: Jorge Andres Brugger (jbrugger)

Attachments:
odbctest.fbk

- Restore attached Firebird backup
- Create a ODBC DSN with standard options, pointing to previously restored DB
- Create or use an existing MS Access 2003 DB (.mdb)
- Link the only one table available at the Firebird DB

In Firebird, PK of the table is the "codigo" field. But Access set "Descripcion" as PK (what is wrong, Descripcion isn't even unique).

SQLGetInfo SQL_CATALOG_TERM returns "system tables" [ODBC4]

Submitted by: faridz (faridz)

Assigned to: Vladimir Tsvigun (praktik)

SFID: 1442702#⁠
Submitted By: faridz

Calling SQLGetInfo with SQL_CATALOG_TERM returns
"system tables". Should returns "database".

Driver:
Firebird/InterBase(r) 2.00.00.126

( Driver says that catalogs are supported )
char szCatalogName[ 10 ]; // "Y" or "N"

rc = SQLGetInfo\( m\_hdbc, SQL\_CATALOG\_NAME, 
                 szCatalogName, sizeof\(

szCatalogName ), &cb );

if \( RC\_SUCCESS\( rc \) \) \{

    ASSERT\( cb <= sizeof\( szCatalogName \) \);

    m\_bCatalogNameSupported = szCatalogName\[0\] == 'Y';
\}

Commits: 5a52fe3

Wrong result of function {fn DAYOFWEEK()} [ODBC34]

Submitted by: Yury Sidorov (jusid)

Here is a quote from ODBC docs:

DAYOFWEEK(date_exp)
Returns the day of the week based on the week field in date_exp as an integer value in the range of 1-7, where 1 represents Sunday.

Firebird ODBC driver returns range 0-6, where 0 is Sunday.

Commits: c0ed309 21771f5

"Could not find object" error using ODBC and BDE accessing tables with one or more fields defined with charset UNICODE_FSS [ODBC43]

Submitted by: Mauro Aiuto (midihelp)

I installed and configured the Firebird ODBC driver 2.0.0 (5th Sep 2007 Windows full install - Beta version). I got severe DB problems in my application, written in Borland Builder c++ rel. 5 environment), so I made a deep debug to understand where's the problem. I found that the connection to the database works, as I can test also from the ODBC administration interface of Windows, but I receive an error accessing the tables that have one or more fields defined with charset UNICODE_FSS: the error is "Could not find object" BDE error n.8712.

In the Developer's Report for March/May 2005, written by Vladimir Tsvigun, in the 3rd point he writes:
«Added support for UNICODE_FSS. Probably it is not absolutely correct. I am in the process of integrating the MultibyteConvert class for support of more character sets. So far -- NONE, ASCII, UNICODE_FSS. Next step is to load fbintl.dll.»

I think that there is still a problem with UNICODE_FSS charset.

All works fine if I use the Firebird ODBC driver 1.2.0.69

Thanks in advance

Mauro

"Invalide filename pased to FileOpen" message trying to browse for FDB file [ODBC18]

Submitted by: Jorge Andres Brugger (jbrugger)

Assigned to: Vladimir Tsvigun (praktik)

Configure a DSN to use a remote server alias. Now try to change Database
parameter clicking "Browse" button. You will get a "Invalide filename
pased to FileOpen" error and therefore cannot browse for fdb file. Maybe
that validation should be done at "OK Button" event, but only when not
using aliases. Error is also not descriptive (end user maybe don't know
about what?s happening ... internal function names shouldn't be used in
message boxes).

Default folder for looking for Firebird client should be system, isn't
right? (I don't know how driver chooses the folder to browse). In this
case (Firebird Client), if the "Invalide filename pased to FileOpen"
error occurs, open file dialog should be opened without notice, because
there is not thing such aliases involved.

Garbage symbols in varchars WIN1251 in output from stored procedure !! [ODBC53]

Submitted by: chedek (chedek2)

Is related to ODBC50

Установил последную версию драйвера Firebird_ODBC_2.0.0.148_win32.exe. Странная проблема при выборке полей varchar из хранимой процедуры в сводную таблицу Excel:
к тексту в поле (колонки) добавляются мусорные символы из ранее выбранных строк,
которые по длине превышают данную.

Пример: Ремонт Кубань [квадратик] А-3 с доп въездом по Одесской
Должно быть: Ремонт Кубань

База Fb+Linux 2.1.1 , Dialect: 1. Charset=WIN1251.

Из предыдущих версий такой ошибки нет только в Firebird ODBC v2.0 от 25.01.2006 !!!
Что делать ?

Error preparing a statement using ODBC Driver ( FB 2.1 ) [ODBC37]

Submitted by: Jorge Goncalves (projorge)

Assigned to: @samofatov

Votes: 4

I always get the error "Invalid parameter in transaction parameter block".
This work's fine with FB 2.0.x

ODBC Log

.....
MicroStore ba8-f10 EXIT SQLGetInfoW with return code 0 (SQL_SUCCESS)
HDBC 01991758
UWORD 17 <SQL_DBMS_NAME>
PTR 0x019928F0 [ 64] "Firebird 2.1 Release Candidate 2"
SWORD 258 SWORD * 0x0012FC7A (64)

MicroStore ba8-f10 ENTER SQLAllocHandle SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 01992660
SQLHANDLE * 0187F1FC

MicroStore ba8-f10 EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 01992660
SQLHANDLE * 0x0187F1FC ( 0x01993068)

MicroStore ba8-f10 ENTER SQLPrepare HSTMT 01993068
UCHAR * 0x021128D0 [ -3] "SELECT PValue FROM PARAM WHERE UPPER(PSection) = UPPER('MOEDAS') AND Upper(PName) = UPPER('EUROROUND')\ d\ a\ 0"
SDWORD -3

MicroStore ba8-f10 EXIT SQLPrepare with return code -1 (SQL_ERROR)
HSTMT 01993068
UCHAR * 0x021128D0 [ -3] "SELECT PValue FROM PARAM WHERE UPPER(PSection) = UPPER('MOEDAS') AND Upper(PName) = UPPER('EUROROUND')\ d\ a\ 0"
SDWORD -3

    DIAG \[HY000\] invalid parameter in transaction parameter block \(335544330\)

.....
.....
.....

Cannot include a comma inside a delimited string as a SP parameter [ODBC52]

Submitted by: Jorge Andres Brugger (jbrugger)

Attachments:
OdbcFb.zip

SP example:

CREATE PROCEDURE SP_EMITIR_PEDIDO_INTERNO (
sucursal smallint,
numero_pedido_interno integer,
usuario smallint,
observaciones varchar(2500))
as
begin
/* do something */
exit;
end

Working case:
call SP_EMITIR_PEDIDO_INTERNO(1,1,1,'some string')

Non working case:
call SP_EMITIR_PEDIDO_INTERNO(1,1,1,'some string, with a comma')

Comma cannot be included inside string, SP call fails with "SQL Error code -104 Unexpected end of command - line 1,
column 51"

Commits: d4a0065 0dab28a 35f521e

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.