Question: I want to write arrays into an InterBase table. Why doesn't the following code work?

pFIBQuery1->>SQL->Add("INSERT INTO T(A) VALUES(:A)");
pFIBQuery1->>pFIBQuery1->PrepareArrayFields();
pFIBQuery1->>ParamByName("A")->SetArrayValue( A );

Answer: You should use the PrepareArraySqlVar instead of PrepareArrayFields. PrepareArrayFields works with the array fields, and you do not have any array fields in your code. The PrepareArraySqlVar method works with parameters and informs the library which table and field your parameter refers to. So the correct code should be:

pFIBQuery1->>SQL->Add("INSERT INTO T(A) VALUES(:A)");
pFIBQuery1->>pFIBQuery1->PrepareArrayFields();
pFIBQuery1->>PrepareArraySqlVar(pFIBQuery1->ParamByName("A"),"T","A",False);
pFIBQuery1->>ParamByName("A")->SetArrayValue( A );


Preview text: 
Prices in Euro:

235 (1 copy)
1250 (unlimited)

Volume discounts are available...

Navigation



What a good job you did! Keep coding great pieces of fast and efficient software:) We started using FIBPlus back in 2001. Since then, every project we offer uses FIBPlus to connect to FirebirdSQL. You library has always been stable, flexible and rocket fast ! Our major project, an helpdesk/data mining application, concurrently used daily by more that a hundred technicians and analysts, uses FIBPlus. Now that FirebirdSQL 2.0 is available, we have been able to upgrade our application quickly and painlessly - that's another reason you can be proud of your work ! >>

Benoit Le Bourhis, Adhoc Innovations
FOR CUSTOMERS
Download full versions and updates in your Personal Area