Втроенный SQL, передача пользовательских переменных
От: ElenKa11  
Дата: 21.05.07 07:18
Оценка:
Здравствуйте. Помогите кто может ))
Возможно вопрос покажется глупым, но я так уже заморочилась, что ответов, если они и есть, самостоятельно уже не вижу.
У меня есть данные получаемые в цикле, и их необходимо выводит в файл exel. Нашла рекомендации по использованию ODBC SQL,
у меня такой код:

CDatabase MyDBForExel;

if ( !SQLConfigDataSource(NULL,ODBC_ADD_DSN,
"Microsoft Excel Driver (*.xls)",
"DSN=New Excel Data Source\0"
"Description=New Excel Data Source\0"
"DriverId=278\0"
"DefaultDir=UF6_france\0"
"MaxScanRows=100\0"))

MessageBox( "Error config ODBC", NULL, MB_OK | MB_ICONERROR );

else{

MyDBForExel.Open( "New Excel Data Source" );


MyDBForExel.ExecuteSQL( "CREATE TABLE france(Позиция TEXT)" );
MyDBForExel.ExecuteSQL( "INSERT INTO france VALUES(:position)" );

MyDBForExel.Close();
}

Проблема возникла при передаче переменных в строке

MyDBForExel.ExecuteSQL( "INSERT INTO france VALUES(:position)" );

В этом месте программа попросту завершается ошибкой, без распознования оной.
После поисков, как встроить SQL в С++ нашла, что перед использованием ссылки на переменную нужно ее еще обьявить:

// Код для объявления переменных на языке С++:
EXEC SQL BEGIN DECLARE SECTION;
int var1;
int var2;
char var3[10];
EXEC SQL END DECLARE SECTION;

А вот как это сделать, используя обьект CDatabase MyDBForExel и функцию ExecuteSQL() не знаю.
Больше никакой информации найти не могу.
Буду благодарна за помощь.
Re: Втроенный SQL, передача пользовательских переменных
От: Andrew S Россия http://alchemy-lab.com
Дата: 21.05.07 14:54
Оценка:
EK>У меня есть данные получаемые в цикле, и их необходимо выводит в файл exel. Нашла рекомендации по использованию ODBC SQL,

EK>Проблема возникла при передаче переменных в строке


EK> MyDBForExel.ExecuteSQL( "INSERT INTO france VALUES(:position)" );


EK>В этом месте программа попросту завершается ошибкой, без распознования оной.


Используйте SQLBindParameter.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.