Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1532
  • Last Modified:

Inserting pictures using VB 6.0

I want to insert pictures into a table using VB. I have defined it as a BLOB datatype. I could not find any way to insert the pictures using SQL statements through VB. Any sample code or reference to documentation would be great.
0
miteshn
Asked:
miteshn
  • 4
  • 2
  • 2
1 Solution
 
BigSchmuhCommented:
Whatever the DBMS, using BLOB is usually not accessible using simple SQL except if you use size restricted BLOB.
There are specific APIs to manipulate BLOB in DB2:
SQLBindFileToCol() Associates LOB file reference with a LOB column.
SQLBindFileToParam() Associates LOB file reference with a parameter marker.
SQLGetLength() Gets length of a string referenced by a LOB locator.
SQLGetPosition() Gets the position of a string within a source string referenced by a LOB locator.
SQLGetSubString() Creates a new LOB locator that references a substring within a
source string (the source string is also represented by a LOB locator).

==> Those APIs may be better understood if you are familiar with ODBC API programming and the good manual is available as "Call Level Interface Guide and Reference" at http://www-3.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v7pubs.d2w/en_main

Hope this helps.
0
 
miteshnAuthor Commented:
Hi BigSchmuh,
Let me refine my question a bit. I was using IBM ODBC Driver which comes with DB2. I am getting the following error message on using IBM ODBC Driver: -

Run-Time error '3251':

Current RecordSet does not support updating. This may be a limitation of the provider, or of the selected lock type.


I do not know how to proceed with the inserting now. There is not a lot of documentation available online. Any pointers to a good sourec would be great.
Thanks,
Mitesh



0
 
BigSchmuhCommented:
I am not sure I understand you well.
I do not think you can define a RecordSet to access your BLOB data but need to use the API from my first post (If you are familiar with calling Windows API, those may be very easy to gzet working)

Regarding a SELECT on table with no BLOB columns
0
Veeam and MySQL: How to Perform Backup & Recovery

MySQL and the MariaDB variant are among the most used databases in Linux environments, and many critical applications support their data on them. Watch this recorded webinar to find out how Veeam Backup & Replication allows you to get consistent backups of MySQL databases.

 
BigSchmuhCommented:
(continued) you must define a Primary key on your table and retrieve every columns included in your primary key for your Recordset to be updatable.
==> I know you can update DB2 tables using RecordSet because I was able to do this using basic query in MS-Access

Hope this helps.
0
 
miteshnAuthor Commented:
Hi BigSchmuh,
Where do I find the API's that you mentioned? Can I use those API's from VB6.0? Also, any code sample using these API's through VB would be great.
Thanks,
Mitesh
0
 
BigSchmuhCommented:
The API can be found in the "Call Level Interface Guide and Reference" at http://www-3.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v7pubs.d2w/en_main
but I can not provide you with VBA examples as they are more commonly used in C.

I think you can try to call those API if you are familiar of calling Windows API from VB.
==> Be aware that improperly calling an API (for example providing wrong parameter type or value) may crash your application ("Memory can not be read" or other GPF error)

Hope this helps.
0
 
ScottNewmanCommented:
Your problem is not in your code, it's in db2 itself.  Your problem lies in the fact that the db2 tables you are trying to access are not journaled, and hence you cannot update, insert or delete from them.  (Has to do with the transaction levels)  Ask your db2 admin to journal these files, and you will then be able to insert and update them.  Otherwise, all you can do is select from them.  

Hope that helps!!
Newman
0
 
ScottNewmanCommented:
oops, me soo stupid.  Didn't see it was answered (still getting used to the new format).

Ignore my post.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now