Consulta Sobre Insert SQL Mediante Sqlexec

176 views
Skip to first unread message

HDA HDA54

unread,
Oct 18, 2010, 9:34:53 PM10/18/10
to publice...@googlegroups.com
Estimados Foristas :
Haciendo pruebas sobre esta modalidad, me encuentro con el siguiente problema:
Desde un formulario usando el entorno de datos y mediante el insert se registran los datos en una tabla que se encuentra en un contenedor ( Hasta acá todo bien ).
Por medio de otro formulario que no tiene tablas en su entorno de datos y mediante un sqlstrinncon..
Queriendo registrar lo mismo pero mediante el driver ODBc de Visual fox pro utilizando sqlexec el comando insert arroja el siguiente error segun ( aerror )

Elementos
1                      1526
2                      Connectivity error[Microsoft ODBC Visual foxpro Driver Data type Mismatch
3                      Microsoft ODBC Visual Foxpro Driver Data type Mismatch
4                      22005
5                      302.00
6                      6.00
7                      .null.

Mi duda, es la siguiente, si funcionó bien desde el entorno de datos. Por que puede haber problemas de esta característica desde otro form utilizando las mismas variables con su respectiva forma de uso para lo que sqlexec se refiere.
Habrá algún problema con campos memos ( uso 3 ).
Para despejar dudas se creo un cursor identico a la tabla que necesitamos insertar para verificar los datos y en el cursor utilizando insert no arroja error alguno.
Desde ya Muchas Gracias.


Ing.Daniel Bojorge

unread,
Oct 18, 2010, 9:57:04 PM10/18/10
to publice...@googlegroups.com
Revisá la instrucción que estás ejecutando posiblemente alguna no lleva valor o algo así...

Sería bueno ver la instrucción.

Dios L@s Bendiga

Saludos,

Daniel (Con 1 Estrella DCE de Microsoft)
Nicaragua

"Si ustedes permanecen unidos a mí, y si permanecen fieles a mis enseñanzas, pidan lo que quieran y se les dará.
(Juan 15:7 DHH)
Bendito el varón que se fía en el SEÑOR, y cuya confianza es el SEÑOR.
(Jeremías 17:7 RV2000)

HDA HDA54

unread,
Oct 19, 2010, 7:42:06 AM10/19/10
to publice...@googlegroups.com
Estimado Daniel :
Gracias por el dato, pero te cuento que son las mismas variables que si funcionaban en un insert del entorno de datos; el problema aparecio cuando lo pasamos a sqlexc con insert.
Hay campos que vienen con fechas vacias y campos memos vacios, de acuerdo a lo que ingresa el operador. Pero esto mismo si funciona en el insert del entorno. Si tenés alguna idea ! Desde Ya Muchas Gracias.
Saludos Cordiales.

Alan Cybar

unread,
Oct 19, 2010, 7:47:51 AM10/19/10
to publice...@googlegroups.com
Entonces puede que el problema este en el tipo de fecha que utilices
al pasarle los datos al SQLServer si es que estas trabajando con esta
BD. Cuando hagas la conexión, debes pasarle el formato de fecha que
sería asi: sqlexec(conexion, "Set dateformat DMY").
Esto configuraría a día, mes, año, si es el formato que manejas.

Alan

extremo

unread,
Oct 19, 2010, 8:29:13 AM10/19/10
to Comunidad de Visual Foxpro en Español
podrias mandar la instuccion del sqlexec para ver el problema, tal vez
estes mandando un string en vez del valor de la variable para algunos
de los datos a cargar.

Bendiciones

HDA HDA54

unread,
Oct 19, 2010, 9:18:53 AM10/19/10
to publice...@googlegroups.com
Estimado :
Haciendo algunas pruebas detecte que el problema esta en las fechas vacias, al insertar mediante sqlexec variables de fechas, si estas estan vacias me da el error.
Chequeamos todos los campos y esta todo bien, cuando las fechas no son vacias registra todo como corresponde.
los campos de la tabla son tipo date. Trabajamos con tablas dbf en contenedores dbc.
Sugerencias ?
Saludos cordiales y Gracias

carlos SALCEDO

unread,
Oct 19, 2010, 9:35:15 AM10/19/10
to publice...@googlegroups.com

Mandar la cadena insert es una buena opcion
para mirar y sugerir

Bendiciones

Carlos


Date: Tue, 19 Oct 2010 10:18:53 -0300
Subject: Re: [vfp] Re: Consulta Sobre Insert SQL Mediante Sqlexec
From: hda...@gmail.com
To: publice...@googlegroups.com

HDA HDA54

unread,
Oct 19, 2010, 9:42:17 AM10/19/10
to publice...@googlegroups.com
Estimado :
La Cadena Insert funciona bien, dado que cuando las variables de los campos fechas no son vacias registra todo bien.
A modo de información te puedo decir que usamos por ej.

Thisform.Text10.Value=Date()
Si tiene que tomar la fecha del día, caso contrario la Text10 está en ctod("  /  /  ").
En un form con la tabla en el entorno de datos no había problermas usando el insert con variables de fechas vacias.
Saludos Cordiales

Luis Maria Guayan

unread,
Oct 19, 2010, 9:51:06 AM10/19/10
to publice...@googlegroups.com
Los motores de bases de datos no tienen el concepto de "fechas vacioas" como lo tiene VFP, en los casos que no tengas fecha, debes darle valor Null

Aqui te paso un enlace a un muy buen artículo del amigo Esparta Palma en PortalFox

-- Cliente-Servidor: Manejo de Fechas --
http://www.portalfox.com/article.php?sid=2445


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

HDA HDA54

unread,
Oct 19, 2010, 9:56:01 AM10/19/10
to publice...@googlegroups.com
Gracias Luis Maria, ya lo estoy estudiando.
Saludos Cordiales

Luis Mata

unread,
Oct 18, 2010, 8:47:11 PM10/18/10
to publice...@googlegroups.com
dejalas como NULL los campos fecha.
 
En caso sea una venta segir la fecha actual, fecha de vencimiento seria fecha actual mas dias de credito, fecha de pago definitivamente deberia ser NULL ya que no sabes cuando te va a pagar.
 
Donde no tengas fechas que colocar dejalas como NULL
 
Luis
 
----- Original Message -----
From: HDA HDA54
Sent: Tuesday, October 19, 2010 8:18 AM
Subject: Re: [vfp] Re: Consulta Sobre Insert SQL Mediante Sqlexec

HDA HDA54

unread,
Oct 19, 2010, 10:03:22 AM10/19/10
to publice...@googlegroups.com
Estimado Luis Mata :
Disculpa mi ignorancia, como seria eso ?
Si tengo un Text por ej. Thisform.Text10.Value en donde solicita una fecha si en otra variable numerica es distinta de cero, obligamos a que ingrese una fecha, sino la Text10 esta puesta como ctod("  /  /  ") en el primer campo del form.

Ej.
Thisform.Text9.Value=100   && importe del detalle
Thisform.Text10.Value=Date(9 && si el importe es # de cero

Ahora si el Text9=0 el Text10 es Vacio por que tiene asignado el ctod("  /  /  ")

Que hago Mal ?

Gracias

Saludos Cordiales

Maggi Fretes

unread,
Oct 19, 2010, 10:10:35 AM10/19/10
to publice...@googlegroups.com
Hola foxero.
Yo tenia el mismo problema que tu, yo trabajo con postgres y en mi caso trataba de grabar una fecha vacia ej: ('  /  / '  ) el cual me arrojaba un error, entonces hice lo siguiente

si mi fecha esta vacia
    entonces
      thisform.text9.value = " "
finsi
ahi recien me graba perfectamente, nunca me iba a grabar con formato vacio asi ('  /  /   ' ), no se si te sirve...pero esa es la solucion que di a mi problema y en todo caso si la fecha
no es vacia el valor correspondiente para su respectivo grabado.

espero te sirva..


Date: Tue, 19 Oct 2010 11:03:22 -0300

Subject: Re: [vfp] Re: Consulta Sobre Insert SQL Mediante Sqlexec

HDA HDA54

unread,
Oct 19, 2010, 10:19:53 AM10/19/10
to publice...@googlegroups.com
Maggi :
Voy a intentar con lo qu eme dices,pero te pregunto en la tabla el campo fecha es date()  ó Caracter ?
Gracias

Maggi Fretes

unread,
Oct 19, 2010, 10:28:04 AM10/19/10
to publice...@googlegroups.com
en cuanto a motor a base de datos en mi caso postgres no reconoce el campo fecha vacio con este formato cuando quieres insertarlo ('  /  /  '), entonces lo que hice es indicarle que esta vacio, ese registro en cuanto a tu fecha pasandolo como te habia enviado en el ejemplo, no se con que base de dato estas trabajando, pero como te menciono Luis Mata, foxpro si reconoce ese formato, pero en cuanto a motor de bd tenes que probar si reconoce este formato, tienes que probarlo y te va a funcionar....sino veremos como solucionarlo..

thisform.text10.value = " "



Date: Tue, 19 Oct 2010 11:19:53 -0300

Luis Mata

unread,
Oct 18, 2010, 9:18:35 PM10/18/10
to publice...@googlegroups.com
cuando pases tu variable lo puedes enviar asi:
 
MiFecha = iif(empty(Thisform.Text10.Value),NULL, Thisform.Text10.Value)
ojo null va sin comillas

Humberto Díaz

unread,
Oct 19, 2010, 5:11:07 AM10/19/10
to publice...@googlegroups.com
Buenas, estoy utilizando la nueva version del Foxypreviewer (1.98), de hecho despues de algunos meses preguntandoles, ahora es que realmente lo estoy usando, me funciona perfectamente, pero con el inconveniente, de que en los valores que tiene que imprimir, solo me salen asteriscos (*), yo aguardar con formato RTF, alguien sabe como puedo remediar esto.
 
gracias
 
 
 
 
 


__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5542 (20101018) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com

Humberto Díaz

unread,
Oct 20, 2010, 2:34:24 AM10/20/10
to publice...@googlegroups.com
Aunque nadie me respondio, no se preocupen, ya pude resolver el problema, de todas formas muchas gracias, otras veces me han ayudado mucho, y me imagino que estarian todos como yo, muy ocupados.
 
ah, la solucion es tan sencilla, que hasta me da pena haber preguntado, era el formato del texto que se imprimia (el tamaño), lo reduje y ya está, se elminaron los asteriscos, resuelto, que tonteria la mia, pero de verdad que me asusté, porque eso no me ocurria cuando no utilizaba el foxypreviewer.
 
Humberto Díaz


__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5545 (20101019) __________
Reply all
Reply to author
Forward
0 new messages