Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Hacer Insert a un campo fecha de un DBF desde .NET (http://www.forosdelweb.com/f29/hacer-insert-campo-fecha-dbf-desde-net-491872/)

RsOfT 22/05/2007 08:18

Hacer Insert a un campo fecha de un DBF desde .NET
 
Estoy intentando insertar una fecha en una base de datos DBF de FoxPro.
Código:

Ej.: Insert Into Tabla (CampoFecha) Values('5007-05-01')
He intentado de todo y no me sale. La fecha la pongo entre comillas ('), entre signo de números (#), la he puesto año, mes, dia ó día, mes, año ó mes, día, año. La he separado por guiones (-) y por slas (/).

Inclusive, la intenté hacer por parámetros asi:
Código:

Parametro = New Data.Odbc.OdbcParameter
Parametro.ParameterName = "@CampoFecha"
Parametro.OdbcType = Odbc.OdbcType.DateTime
Parametro.Value = CDate('2007-05-01')

También la variable del parámetro la puse con "?" como MySQL y con ":" como ORACLE y tampoco funciona...

Ya no se que hacer, ¿alguien me puede ayudar? :pensando:

PD: Para conectarme a la base de datos tengo un ODBC creado utilizando "Microsoft dBase VFP Driver".

RootK 22/05/2007 08:31

Re: Hacer Insert a un campo fecha de un DBF desde .NET
 
Si lo estás haciendo con objetos ODBC intentalo de ésta forma:

Cita:

Insert Into Tabla (CampoFecha) Values(?)
...

Parametro = New Data.Odbc.OdbcParameter
Parametro.ParameterName = "@CampoFecha"
Parametro.OdbcType = Odbc.OdbcType.DateTime
Parametro.Value = CDate('2007-05-01')
Salu2

RsOfT 22/05/2007 09:24

Re: Hacer Insert a un campo fecha de un DBF desde .NET
 
Lo puse asi:
Código:

Parametro = New Data.Odbc.OdbcParameter
Parametro.ParameterName = "?Fecha"
Parametro.OdbcType = Odbc.OdbcType.DateTime
Parametro.Value = CDate('2007-05-01')
...
Insert Into Tabla (CampoFecha) Values(?Fecha)
...

Y me da el siguiente error: {"ERROR [42000] [Microsoft][ODBC Visual FoxPro Driver]Syntax error."}.

Lo puse asi:
Código:

Parametro = New Data.Odbc.OdbcParameter
Parametro.ParameterName = "?Fecha"
Parametro.OdbcType = Odbc.OdbcType.DateTime
Parametro.Value = CDate('2007-05-01')
...
Insert Into Tabla (CampoFecha) Values(?)
...

Y me da el siguiente error: ERROR [07001] [Microsoft][ODBC Visual FoxPro Driver]Wrong number of parameters.

Lo puse asi:
Código:

Parametro = New Data.Odbc.OdbcParameter
Parametro.ParameterName = "?Fecha"
Parametro.OdbcType = Odbc.OdbcType.DateTime
Parametro.Value = CDate('2007-05-01')
...
Insert Into Tabla (CampoFecha) Values(Fecha)
...

Y me da el siguiente error: ERROR [S1000] [Microsoft][ODBC Visual FoxPro Driver]Variable 'FECHA' is not found..

RootK 22/05/2007 09:34

Re: Hacer Insert a un campo fecha de un DBF desde .NET
 
Si pusiste tu cadena de insert así:

Cita:

Insert Into Tabla (CampoFecha) Values(?)

RsOfT 22/05/2007 09:42

Re: Hacer Insert a un campo fecha de un DBF desde .NET
 
Perdón, no me fijé que me faltaba esto:
daDBF.UpdateCommand.Parameters.Add(Parametro)

Ya me está funcionando bien. Por Fin!!!! Que bueno... :si:

Ahora me hago la pregunta, y si fuera más de un parámetro? porque solo hay que poner un ? y no el signo con el nombre de la variable asi: "?Fecha"...

Gracias por tu ayuda... :adios:

RootK 22/05/2007 14:40

Re: Hacer Insert a un campo fecha de un DBF desde .NET
 
Cita:

y si fuera más de un parámetro?
los separas por "," y puedes colocar todos los que necesites, obviamente cada uno de ellos los defines con tu OdbcParameter
Cita:

Insert Into Tabla (CampoFecha) Values(?,?,?,?)

RsOfT 22/05/2007 14:46

Re: Hacer Insert a un campo fecha de un DBF desde .NET
 
Gracias por la info!!! :adios:

juancamisa 23/09/2008 14:34

Respuesta: Re: Hacer Insert a un campo fecha de un DBF desde .NET
 
Cita:

Iniciado por RsOfT (Mensaje 2012804)
Gracias por la info!!! :adios:

Perdón, no me fijé que me faltaba esto:
daDBF.UpdateCommand.Parameters.Add(Parametro)

de donde sacas esto daDBF

RsOfT 24/09/2008 13:14

Respuesta: Hacer Insert a un campo fecha de un DBF desde .NET
 
daDBF es el nombre que le puse al DataAdapter. Ej.: Dim daDBF as new DataAdapter


La zona horaria es GMT -6. Ahora son las 19:55.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.