Problem with driver ODBC / VB

Started by Kalitechabout 21 years ago2 messagesbugs
Jump to latest
#1Kalitech
kalitech@kalitech.fr

Hello,

These tests are done with the 2 versions of the driver 7.3

Table User description : u_num int4 nextval( …), u_comm varchar(512)

In my table I have one row :
u_num 1
u_comm ‘hello world <CR><LF> all is fine.’

Imagine I want to delete this row
Sql = “select * from user where u_num=1”
Set rs = odbc_cnx.OpenResultset( sql, rdOpenKeyset,
rdConcurRowver )
Rs.Edit
Rs.delete
Rs.close
The row is not deleted. Of course because in the log file, I find
Sql = “Delete from user where u_num=1 and u_comm=‘hello
world
all is fine.’”

I have found how to do :
Sql = “select u_num from user where u_num=1”
Set rs = odbc_cnx.OpenResultset( sql, rdOpenKeyset,
rdConcurRowver )
Rs.Edit
Rs.delete
Rs.close
And now it is ok since in the log file, I find
Sql = “Delete from user where u_num=1”

But I have the same problem with update :
Sql = “select u_num, u_comm from user where u_num=1”
Set rs = odbc_cnx.OpenResultset( sql, rdOpenKeyset,
rdConcurRowver )
Rs.Edit
Rs(“u_comm”).value = “bonjour”
Rs.update
Rs.close
In the log file, I find
Sql = “Update from user set u_comm=’bonjour’ where u_num=1
and u_comm=‘hello world
all is fine.’”
Is there anything to do to obtain from the driver something like :
Sql = “Update from user set u_comm=’bonjour’ where u_num=1”
Since we don’t need the second clause.

Thank you very much if you have a solution.

Hélène FESTOC
Kalitech - 01 69 41 97 54

#2Hendrik Müller
user@invalid.domain
In reply to: Kalitech (#1)
Re: Problem with driver ODBC / VB

Kalitech schrieb:

Hello,

These tests are done with the 2 versions of the driver 7.3

Table User description : u_num int4 nextval( �), u_comm varchar(512)

In my table I have one row :

u_num 1

u_comm �hello world <CR><LF> all is fine.�

Imagine I want to delete this row

Sql = �select * from user where u_num=1�

Set rs = odbc_cnx.OpenResultset( sql, rdOpenKeyset,
rdConcurRowver )

Rs.Edit

Rs.delete

Rs.close

The row is not deleted. Of course because in the log file, I find

Sql = �Delete from user where u_num=1 and u_comm=�hello world

all is fine.��

I have found how to do :

Sql = �select u_num from user where u_num=1�

Set rs = odbc_cnx.OpenResultset( sql, rdOpenKeyset,
rdConcurRowver )

Rs.Edit

Rs.delete

Rs.close

And now it is ok since in the log file, I find

Sql = �Delete from user where u_num=1�

But I have the same problem with update :

Sql = �select u_num, u_comm from user where u_num=1�

Set rs = odbc_cnx.OpenResultset( sql, rdOpenKeyset,
rdConcurRowver )

Rs.Edit

Rs(�u_comm�).value = �bonjour�

Rs.update

Rs.close

In the log file, I find

Sql = �Update from user set u_comm=�bonjour� where u_num=1
and u_comm=�hello world

all is fine.��

Is there anything to do to obtain from the driver something like :

Sql = �Update from user set u_comm=�bonjour� where u_num=1�

Since we don�t need the second clause.

Thank you very much if you have a solution.

H�l�ne FESTOC

Kalitech - 01 69 41 97 54

Your must set an index on u_num.