Como Grabar de vfp más de un Item en Sql

Estimado amigo de nuevo molestando sabes deseo grabar la información de una lista de pedidos (más de un 2 o 3 items) a mi tabla salida que esta en el Sql2000 Server. Yo estoy utilizando esta sentencia que Tu me enseñastes (hace un par de meses y que esta funcionando muy bien) solo te muestros esto datos de ejemplo para que veas.
Xcnx2="Insert Into Salida(Ord_Sal, Ofi_Sal, Cod_Sal, Tip_Sal, Fec_Sal,) Values ('"+Thisform.Nro_Doc.Value+"','"+Thisform.Ofi_Sol.Value+"',"+Thisform.Cod_Sol.Value+"',;
'"+Thisform.Tip_Sol.Value+"','"+Thisform.Fec_Pec.Value+"')"
IF Sqlexec(CnxStk,Xcnx2)>0
Else
   a=Aerror(Mat)
   Messagebox(Mat(2), 55,'Error al Grabar')
ENDIF
Ahora esta sentencia la he puesto en el botón Grabar de mi formulario salida de Artículos y se ejecuta después de grabar todo y manda a imprimir. Luego cierro la aplicación y cuando voy a la Base de datos y busca la tabla Salida en el SQL2000 Server solo esta grabado la ultima linea o el ultimo Items (en total eran 3 pedidos o items),
Dime amigo que estoy haciendo mal ahora ayuda por favor

1 Respuesta

Respuesta
1
Es muy extraño, pero seguramente tienes esto en un ciclo, por ejemplo
Se le temp
Go top
do while !eof()
      *- aqui el Insert into..........
       Se le temp
Enddo
Si usas esa estructura algo anda mal con SQL2000 del cual no soy experto lastimosamente, pega aquí un código completo de tu recorrido de tu cursor para analizar si noda resultado.
Estimado amigo lo que deseo es poder grabar varios registros de mi tabla Tmp_Sal que uso temporalmente en mi formulario y poderlo llevar o grabar al Sql2000. Yo he utilizado este código que me distes a ese meses y que funciona muy bien pero con mi otra aplicación y que solo graba 1 registro por transacción. Pero en esta aplicación utilizo un formulario que realiza transacción de 1 a 15 registros, los cuales deseo enviarlos de esta tabla Tmp_Sal al Sql2000. Para que tengas una idea te vuelvo a copiar el código que estoy uilizando:
Xcnx2="Insert Into Salida(Ord_Sal, Ofi_Sal, Cod_Sal, Tip_Sal, Fec_Sal,) Values ('"+Thisform.Nro_Doc.Value+"','"+Thisform.Ofi_Sol.Value+"',"+Thisform.Cod_Sol.Value+"',; '"+Thisform.Tip_Sol.Value+"','"+Thisform.Fec_Pec.Value+"')"
IF Sqlexec(CnxStk,Xcnx2)>0
Else
a=Aerror(Mat)
Messagebox(Mat(2), 55,'Error al Grabar')
Endif
Gracias.
Entiendo, por eso debes usar el do while ... para recorrer los registros del tmp e ir volcando a sql registro por registro, no conozco una forma de enviarlos todos de una vez al menos en ambiente C/S.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas