Как вы выбираете или вставляете строки в пакетах, используя ODBC? (в C или C ++) - PullRequest
5 голосов
/ 29 июня 2011

Я пытаюсь понять, какие функции ODBC вызывать и как вызывать их для выборки строк в пакетах или вставки строк в пакетах (вставки, которые используют переменные связывания, а не просто массив операторов вставки).

Я могу получить по одной строке за раз, вызывая эти функции в порядке

SQLBindParameter
SQLExecute
SQLFetch

Также, если я выполняю вставки / обновления, я могу делать по одной строке за раз, вызывая эти функции

SQLBindParameter
SQLExecute

Что я не знаю, так это то, что мне нужно изменить в этих вызовах, чтобы:

1) Извлекать строки партиями, например, 150 строк на партию
2) Вставьте несколько строк для каждого вызова SQLExcecute, например. 150 строк на вызов

Короткие содержащиеся примеры (не обязательно компилируемые, поскольку проги ODBC имеют тенденцию быть длинными .. поэтому игнорируйте настройку / инициализацию, игнорируйте проверку ошибок), демонстрируя, как это делается, было бы полезно. Или указатель на понятный открытый исходный код, который делает подобные вещи

Ответы [ 3 ]

2 голосов
/ 11 июля 2011

В следующей статье рассказывается, как отправлять строки параметров за один раз:

http://www.easysoft.com/products/data_access/odbc_odbc_bridge/performance_white_paper.html#3_1_2

В основном вам необходимо выполнить поиск SQLSetStmtAttr и SQL_ATTR_PARAMSET_SIZE.

Чтобы получить несколько строк за один раз, см. http://www.easysoft.com/developer/languages/c/odbc-tutorial-fetching-results.html

Поиск SQL_ATTR_ROW_ARRAY_SIZE.

2 голосов
/ 30 сентября 2011

Есть два независимых примера того, как выполнить привязку массива на этом сайте
http://msdn.microsoft.com/en-us/library/ms709287(v=vs.85).aspx
Также клиент DB2 поставляется с несколькими примерами кода, некоторые из которых показывают, как выполнить привязку массива как для вставок, так и для выбора

1 голос
/ 08 июля 2011

Вот отличная статья от IBM Developerworks, которая может ответить на некоторые ваши вопросы об архитектуре ODBC:

Программирование ODBC с использованием Apache Derby (доступно через Wayback Machine)

Один из главных «приемов» оптимизации сетевого трафика с использованием соединения ODBC - это способ определения курсора:

http://technet.microsoft.com/en-us/library/ms131453.aspx

'Надеюсь, это поможет .. PSM

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...