Manuel depende como estés utilizando el mysql en tus programas.
si lo estás haciendo en forma manual, (es decir que escribes las instrucciones de insert tu mismo)
y no estás haciendo esto a través de cursor adapter, podrías guardar todos los registros en una sola instrucción
la idea es usar también scan / endscan, pero en vez de ejecutar un insert de sql por cada pasada,
ir generando una instrucción (cargando una variable con la instrucción de insert múltiple ) , y una vez
terminado el scan ...
ejecutar la instrucción de insert multiple
INSERT INTO tabla (campo1, campo2, campoN) VALUES ('valor1registro1', 'valor2registro2'), ('valor1registro2', 'valor2registro2'),('valor1registro3', 'valor2registro3')
vlc_instruccion = " INSERT INTO __tabla__ (campoa, campob, campoc) VALUES "
select __cursor
scan
vlc_instrucción = vlc_instruccion + " ( "+ ;
dato_para_sql(__cursor.campoa )+ ", "+;
dato_para_sql
(__cursor.campob)
+ ", "+;
dato_para_sql
(__cursor.campoc)
+ "),"
endscan
vlc_instruccion = left(vlc_instruccion,len(vlc_instruccion)-1) && sacamos la ultima coma, ya que no hay mas registros.....
vln_resultado = sqlexec(__conexion,vlc_instruccion)
la función dato_para_sql, deberá armarte el valor del campo en función de si es numérico, numérico con decimales, fecha, caracter
* tener en cuenta que en mysql las fechas se graban con este formato 'aaaa-mm-dd'.
los campos carácter y fechas tendrás que ponerlos entre ----> ' (comilla simple)
y los numéricos convertidos a un string con el punto decimal como '.' pero sin comillas....
* ojo si se tratare de un campo fecha de un motor sql_server. los campos fecha no permiten '0000-00-00' (fecha vacía)
valor que si es permitido en mysql , postgresql...., (ver el manual de sql server, cual es la mínima fecha permitida)