FoxPro/Visual FoxPro - Ayuda de los expertos

   
Vista:

Ayuda de los expertos

Publicado por Beatriz (66 intervenciones) el 11/06/2008 18:08:14
Hola, recien unos dias solicite ayuda a éste foro referente a saber si existia una manera de insertar un conjunto de registros desde una tbl de fox a sql de una sola vez.......como el append from de Fox, y segun los expertos no existe una manera de enviar varias filas de una vez a sql,,,,la cuestion es que implemente lo que me sugirieron, de hacer un ciclo(do while) e ir insertando fila por fila¡¡¡¡pero es un orror¡¡¡¡se tarda mucho la rutina de insercion solo con 10 registros...y ahora pensar con un detalle de unos 50 productos??'Se imaginan......Si saben otra manera de hacerlo POR FAVOR DIGANME¡¡¡¡
gracias
Atte Beatriz
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda de los expertos

Publicado por enrique (1041 intervenciones) el 11/06/2008 18:44:55
Lo que te queda es crear un StoreProcedure en SQL para que tome los datos de la tabla o tablas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de los expertos

Publicado por Marvin Emilson Pineda (75 intervenciones) el 11/06/2008 18:53:10
Hola Bea,

no te recomiendo utilizar procedimientos en SQL ya que esto aumentaria tu costo de mantenimiento, solo en caso de ser sumamente necesarios se podrian usar.... mmmm... subir registro por registro es lo normal a utilizar otra cosa tambien que se puede hacer es crear una sola variable con todas las inserciones a enviar a SQL ejemplo:

lcSQL = "Insert Into Detalle (*) Values (*)" + ";" + "Insert Into Detalle (*) Values (*)" + .... asi segun la cantidad de lineas a enviar a SQL

separar cada sentencia SQL como punto y coma te permite crear una sola variables con todas las sentencias SQL a ejecutar...

otra cosa!!!... si es muy lento de cualkier forma que lo hagas sera lento porque el problema no es de VFP o de SQL el problema es de la red... capacidad del servidor y capacidad de la terminar en uso... verifica si estos 2 cumplen con los rekerimientos minimos o si tienen la suficiente capacidad para cumplir con estos roles

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de los expertos

Publicado por Plinio (7771 intervenciones) el 11/06/2008 23:24:26
No creo que tu problema sea usar el ciclo. Aunque existen diferentes metodos para insertar multples registros habria que avergiguar cual es el problema con la velocidad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de los expertos

Publicado por jose camilo (40 intervenciones) el 12/06/2008 23:04:46
mira bea tambien trabajo en sql server y en un super mercado pasando una compra de 60 articulo se tomo algo como un segundo.

ahora bien yo abro la coneccion a mi base de datos en sql al inicio de mi programa y no la cierro hasta k salgo del programa durante toda mi actividad mi coneccion a la base de datos esta abierta y tu k haces
intenta abrir la coneccion cada vez k haces un insert y luego le da un desconet si hace esto se pondras pesado y super lento
por otro lado cuantos campos esta intentando insertar
son tanto k combina un insert mas un update, tu sabes k fox solo te soporta una linea de 265 caracteres

podrias poner tu cadena de conecion solo tienes k kitarle la clave tambien el bucle para saber k ayuda darte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de los expertos

Publicado por Beatriz (66 intervenciones) el 12/06/2008 23:54:48
Hola Camilo, estoy a la deriva,,,,imaginate que mi rutina se tarda un minuto para subir 30 registros a sql.....estoy perdida...bueno.....espero encontrar la solución¡¡¡
De eso se trata, y aprovechando la ayuda de personas como tu¡¡¡
Atte Beatriz
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de los expertos

Publicado por Marvin Emilson Pineda (75 intervenciones) el 13/06/2008 04:45:37
ese es el problema ke yo he visto en este foro, la mayoria de usuarios que piden ayuda no publican si soluciono o no con las respuestas que ha obtenido lo cual no permite seguir ayudando o lo deja a uno con insertidunbre...

seria excelente si nos dejaran saber si soluciona o no nuestras respuestas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de los expertos

Publicado por jose camilo (40 intervenciones) el 13/06/2008 15:13:36
hola bea
te decia al inicio de tu formulario preferiblemente al inicio del programa haste la coneccion a la base de datos con SQLSTRINGCONNECT

para abrir el programa se tardara un poquito mas pero ya tienes el canal abierto entre tu programa y la base de datos.

asi al grabar haces referencia a esta coneccion o canal en el SQLEXEC y es mucho mas rapido.

al finalizar el programa entonces le da SQLDISCONNECT

algunos colegas utilizan abrir la coneccion al momento de grabar y la cierran al concluir el proceso de grabacion y esto hace el programa sumamente lento. a mi personalmente me gusta dejar mi base de datos abierta permanentemente y asi ahorro tiempo en busqueda y grabacion. no es lo k recomiendan los manuales moderno de programacion pero me da resultado.

si puedes mandame un mail con tu proceso de grabacion para ver si algo de lo k haces se puede optimizar.
solo el boton grabar
jdcamilo@hotmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de los expertos, correcto Camilo

Publicado por DOUGLAS (297 intervenciones) el 17/06/2008 00:08:45
eso es exactamento lo que yo hago ya que tengo lo mismo que beatriz, el sistema que estoy terminando es de facturacion, dond cargo un buen detalle de productos y varios usuarios o vendedores a la ves, claro depende la capacidad de recursos que tenga el hardware.

pero si funciona con un
no veo otra forama de hacerlo, claro en el load del form. hay unas lineas de coneccion mas un

wait window "Espere un momento se carga la base de datos.." at 10,50 nowait
wait window "Espere un momento se carga la base de datos....." at 10,50 nowait
wait window "Espere un momento se carga la base de datos........" at 10,50 nowait
wait window "Espere un momento se carga la base de datos............" at 10,50
nowait

wait clear

proceso de conexion....


en el boton grabar...

claro antes utilizo
use tmpdetalle
scan
inser into .....
enscan

se dilata pero no tango.. recomiendo hacer este timpo de pruebas con una cantidad minimas de recursos ya con el clientes uno se puede topar con ellos.

Superando obstaculos SQL Pass Through
Douglas
superando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de los expertos, correcto Camilo

Publicado por DOUGLAS (297 intervenciones) el 17/06/2008 00:08:49
eso es exactamento lo que yo hago ya que tengo lo mismo que beatriz, el sistema que estoy terminando es de facturacion, dond cargo un buen detalle de productos y varios usuarios o vendedores a la ves, claro depende la capacidad de recursos que tenga el hardware.

pero si funciona con un
no veo otra forama de hacerlo, claro en el load del form. hay unas lineas de coneccion mas un

wait window "Espere un momento se carga la base de datos.." at 10,50 nowait
wait window "Espere un momento se carga la base de datos....." at 10,50 nowait
wait window "Espere un momento se carga la base de datos........" at 10,50 nowait
wait window "Espere un momento se carga la base de datos............" at 10,50
nowait

wait clear

proceso de conexion....


en el boton grabar...

claro antes utilizo
use tmpdetalle
scan
inser into .....
enscan

se dilata pero no tango.. recomiendo hacer este timpo de pruebas con una cantidad minimas de recursos ya con el clientes uno se puede topar con ellos.

Superando obstaculos SQL Pass Through
Douglas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de los expertos, correcto Camilo

Publicado por Beatriz (66 intervenciones) el 17/06/2008 15:36:15
Hola amigos, ahora les pregunto, y luego de que recorren la estructura temporal, para ir tomando los datos del temdetalle e irlos insertando a la tabla alojada en sql, luego de gravarlos que hacen???es decir si todo fue bien........ejeutan otra consulta para refrescar todos los datos?????Si em pueden exclarecer eso¡¡¡
Mil gracias
Atte beatriz
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar