Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Garbage by serial update [ODBC55] #56

Closed
firebird-automations opened this issue Jan 15, 2009 · 14 comments
Closed

Garbage by serial update [ODBC55] #56

firebird-automations opened this issue Jan 15, 2009 · 14 comments

Comments

@firebird-automations
Copy link

Submitted by: Viesturs Ducens (kaktss)

Attachments:
test.zip
trace.zip

When multiple updates is running, (one time Prepare, multiple Executes), data base fields is filled with garbage from previous records.
Sample:
If SqlPrepare ('Update Table Set Field = xxxx')
While Ok
BindVariables
SqlExecute ()

The first record seems to be Ok. If the value for next record is shorter, at the end of Field there are appended aditional characters from previous record. It seems, that it hasn't released some buffers between SqlExecutes.

@firebird-automations
Copy link
Author

Commented by: @alexpotapchenko

Please try driver from here: ODBC50 and inform me about results.

@firebird-automations
Copy link
Author

Modified by: @alexpotapchenko

assignee: Alexander Potapchenko [ lightfore ]

@firebird-automations
Copy link
Author

Commented by: Viesturs Ducens (kaktss)

Have tried driver from 27.11.2008. The same effect - additional garbage symbols from previous record ;-(

@firebird-automations
Copy link
Author

Commented by: @alexpotapchenko

Can you give me your test case (C#⁠, С++ or other) with a database metadata?

@firebird-automations
Copy link
Author

Commented by: Viesturs Ducens (kaktss)

It will be very difficult ;-( It is not C, but Centura Team Developer - very complex system.
My be there is possible to enable more extended debug or tracing, including data sent to and from server ?

@firebird-automations
Copy link
Author

Commented by: @alexpotapchenko

Well, I will try to reproduce it in C#⁠ or C++. But I want to look at the database metadata. Is it reproduced with VARCHAR columns?

@firebird-automations
Copy link
Author

Commented by: Viesturs Ducens (kaktss)

I will send the database metadata and fragment from my test source code.

@firebird-automations
Copy link
Author

Commented by: Viesturs Ducens (kaktss)

There are files
test2.sql - database metadata
TEST2.gbk - database backup (FB 2.0.3)
test.txt - source code of test case

@firebird-automations
Copy link
Author

Modified by: Viesturs Ducens (kaktss)

Attachment: test.zip [ 11300 ]

@firebird-automations
Copy link
Author

Commented by: @alexpotapchenko

I can not reproduce it in C#⁠ with your database as yet.
You sure that problem not in code:
Set sValue = SalStrRepeatX (' ', 250)
Set sValue = SalStrRepeatX (SalNumberToChar (48+i), 30-i) ?
You can give me ODBC trace file (in ODBC DataSource Administrator) to make the picture complete.

@firebird-automations
Copy link
Author

Modified by: Viesturs Ducens (kaktss)

Attachment: trace.zip [ 11301 ]

@firebird-automations
Copy link
Author

Commented by: Viesturs Ducens (kaktss)

I have attached trace log file. I started test application 2 times - first with the MS SQL Server database, then the Firebird database. The log file I attached is one for both processes.
The results in MS SQL database are Ok, but in FB aren't.

About source code. These 2 lines of code are correct.. The first one set the variable sValue equal to 250 spaces, to be sure, there remains no garbage in my code. The second one sets sValue equal to diferent values, every one shorter by 1 as previous (00000, 1111, 222, ....). In all rows except first one remains something from previous rows (00000, 11110, 22210)

Ok, the situation is more complex while I don't work directly with ODBC, but through the connectivity subsystem of " Centura Team Developer - something like additional "ODBC driver". But why the results are correct in case of MS SQL, but aren't for Firebird ?
May be there is possible to get trace log file not only with SQL commands but with data too ?

@firebird-automations
Copy link
Author

Modified by: @alexpotapchenko

assignee: Alexander Potapchenko [ lightfore ] =>

@firebird-automations
Copy link
Author

Modified by: @alexpotapchenko

status: Open [ 1 ] => Closed [ 6 ]

resolution: Cannot Reproduce [ 5 ]

Fix Version: 2.0.3 [ 10581 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant