2011-06-29 10 views
5

Estoy tratando de entender qué funciones de ODBC llamar y cómo llamar a para buscar filas en lotes o insertar filas en lotes (inserciones que utilizan variables de vinculación no solo una matriz de instrucciones de inserción) .¿Cómo recuperas o insertas filas en lotes usando ODBC? (en C o C++)

puedo buscar una fila a la vez llamando a estas funciones con el fin

SQLBindParameter 
SQLExecute 
SQLFetch 

Además, si se hacen inserciones/actualizaciones que pueda hacer una fila a la vez llamando a estas funciones

SQLBindParameter 
SQLExecute 

Lo que no sé es qué tengo que cambiar en estas llamadas para:

1) Buscar filas en lotes, por ejemplo 150 filas por lote
2) Inserte varias filas por cada llamada SQLExcecute, p. 150 filas por llamada

Ejemplos breves (no necesariamente compilables, ya que los programas ODBC tienden a ser largos ... ignore la configuración/inicialización, ignore la comprobación de errores) y sería útil demostrar cómo se hace. O un puntero a un código de fuente abierta comprensible que está haciendo este tipo de cosas

+1

base de datos serie la lectura/escritura será mucho más costosa que la sobrecarga de llamada a la función secundaria de llamar a SQLBindParameter/SQLExecute un montón de veces. –

+0

No estoy seguro de lo que quieres decir. Sé que odbc y otras aplicaciones aptatery admiten operaciones por lotes. Simplemente no sé cómo se hace usando odbc. En Java, por ejemplo, tienen métodos como PreparedStatement.addBatch() PreparedStatement.executeBatch() – user754425

+1

Eso es porque la interfaz JNI de Java para C es muy costosa. Así que cuantas menos llamadas nativas, mejor.Ese no es el caso cuando estás programando en C o C++. –

Respuesta