cancel
Showing results for 
Search instead for 
Did you mean: 

how to insert binary data using vc++

Former Member
0 Kudos
5,556

Hello,

I am an engineering student working on a project in which sql anywhere will works as a back-end database. I have faced a problem to insert binary data into tables using

FUNC_INFO( extern, void, esqlentry, dbpp_execute_imm, (SQLCA ,char ,unsigned short int ))

I also try to run FUNC_INFO( extern, void, esqlentry, dbpp_prepare, (SQLCA ,char ,char ,short int ,char ,struct sqlda ,unsigned int )), but fails because there is no documentation found on net about these functions.

Please guide me, I am waiting for a reply.

Thanks

Accepted Solutions (0)

Answers (3)

Answers (3)

johnsmirnios
Advisor
Advisor

The dbpp_* entry points are for use by ESQL programs and calls to them are generated by the ESQL preprocessor: sqlpp. Users are not supposed to write code to call these functions directly. See http://dcx.sybase.com/index.html#1201/en/dbprogramming/pg-esql.html for information on using ESQL.

BTW, are you required to use ESQL for your project? Possibly you could use ODBC, .NET, or perhaps even a scripting language such as python or perl?

Former Member
0 Kudos

Hello john, Thanks for your reply................. Actually I need to use Embedded SQL because of my project requirement and I am using dblib.dll for this purpose. I need to insert data in Long Binary type field of SQL AnyWhere table . I need to use parametrized query for this and I have used functions of dblib.dll to insert data in table, but I have header file containing function declaration , so I am unable to implement the function to prepare statement using dblib.dll. Following is prototype of function:

FUNC_INFO( extern, void, esqlentry, dbpp_prepare, (SQLCA ,char ,char ,short int ,char ,struct sqlda ,unsigned int ))

I could not get any documentation describing the parameters of this function . How can I prepare a statement using functions of this dll and Execute it to insert binary data.

Please help me out as I am new to this Embedded SQL concept....

Waiting for positive response...............

Thanks Amit Chauhan

ian_mchardy
Product and Topic Expert
Product and Topic Expert
0 Kudos

When developing with Embedded SQL, you write C/C++ source usually as a .sqc file that has embedded 'EXEC SQL ...' statements to actually connect and interact with the database server. Then you preprocess your .sqc to a .c file using sqlpp (this changes the EXEC SQL ... statements to call the internal dbpp_... functions). Then you compile the .c file as usual. Please read the dcx documentation link that John posted.

ian_mchardy
Product and Topic Expert
Product and Topic Expert

It is unsupported and undocumented to call dbpp_prepare directly. You must use embedded SQL (EXEC SQL...) and use the sqlpp pre-processor.

To insert binary data into a table using Embedded SQL, you may want to do something like the following (assuming the data to be inserted is in source_data, and the table you want to insert into is my_table with one column):

EXEC SQL BEGIN DECLARE SECTION;

DECL_LONGBINARY(100000) binary_host_var;

EXEC SQL END DECLARE SECTION;

memcpy( binary_host_var.array, source_data, source_data_len );

binary_host_var.stored_len = source_data_len;

db_string_connect( &sqlca, "uid=dba;pwd=sql" );

EXEC SQL INSERT INTO my_table values( :binary_host_var );

EXEC SQL COMMIT;

db_string_disconnect( &sqlca );

VolkerBarth
Contributor
0 Kudos

What exactly do you mean with "everything at run time dynamically"?

I'm sure there are even more infos available but I would strongly recommend to have a look at the docs.

Former Member
0 Kudos

I saw all suggested documents already, please check link below: ftp://58.130.54.4/cmis/ediasoft100315/ediasoft/asa9/SQL%20Anywhere%209/h/sqlfuncs.h

Now I want to know about ant documentation or another help how can I use the functions of "sqlfuncs.h", I done all works except insertion of binary, long binary & long varchar data. Please help me.

MCMartin
Participant
0 Kudos

For me your Func_Info looks like a c++ preprocessor makro so check your header files for the implementation, maybe from there you can identify what and how it should be done.