PDA

Ver la Versión Completa : Insert En Mysql


Yun-i
11-10-2008, 16:51:29
saludos a todos los Foristas

Miren estoy poniendo este hilo por que estoy realizando un insert a una base dedatos de mysql desde delphi 6 pero nose por que me manda el error:

el proveedor de datos u otros servicios devolvio e_fail

e ledio en varios lugares y dicen algunos que por el odbc otros que por dejar campos en blanco al insertar otros que por el tipo de dato y la verdad he probado con lo que eh encontrado pero nada espero me puedan ayudar el codigo que mando es el siguinete

AdoPublica.Open;
AdoPublica.Insert;
AdoPublicaEVT_EVENTO.Value:=ADODATASET1.Fields.FieldByName('ID_COTIZACION').AsInteger;
AdoPublicaEVT_FECHA_INI.Value:=2008-10-10{dtFechaIni.Date};
AdoPublicaEVT_NOMBRE.VALUE:=EdtEvento.Text;
AdoPublicaEVT_FECHA_FIN.Value:=2008-10-10{dtFechaFin.Date};
AdoPublicaDESCRIPCION.value:=RzMemo1.Text;
AdoPublicaCONTACTO_EVE.Value:=EdtContactoE.Text;
AdoPublicaSALONES.Value:=memoSaloCoti.text;
AdoPublicaCONTACTOemp.Value:=EdtContactoemp.Text;
AdoPublica.Post;
AdoPublica.Close;

enecumene
11-10-2008, 17:23:28
En los campos de fecha intenta cambiar .Value a .AsDate.

Saludos.

Yun-i
11-10-2008, 17:40:19
Gracias Por responder,

lamentablemente aun poninedo asdatetime en vez de value me sigue marcando el mismo error

:(

enecumene
11-10-2008, 17:43:26
Gracias Por responder,

lamentablemente aun poninedo asdatetime en vez de value me sigue marcando el mismo error

:(

A ver, Cambia esto:

ADODATASET1.Fields.FieldByName('ID_COTIZACION').AsInteger

por

ADODATASET1.Fields['ID_COTIZACION'].AsInteger

ó

ADODATASET1.FieldByName('ID_COTIZACION').AsInteger

Saludos.

Yun-i
11-10-2008, 18:06:53
Gracias nueva mente

he puesto el cogigo asi:AdoPublica.Open;
AdoPublica.Insert;
AdoPublicaEVT_EVENTO.AsInteger:=ADODATASET1.FieldByName('ID_COTIZACION').AsInteger;
AdoPublicaEVT_FECHA_INI.AsDateTime:=dtFechaIni.Date;
AdoPublicaEVT_NOMBRE.AsString:=EdtEvento.Text;
AdoPublicaEVT_FECHA_FIN.AsDatetime:=dtFechaFin.Date;
AdoPublicaDESCRIPCION.Assign(RzMemo1.Lines);
AdoPublicaCONTACTO_EVE.AsString:=EdtContactoE.Text;
AdoPublicaSALONES.Assign(memoSaloCoti.Lines);
AdoPublicaCONTACTOWTC.AsString:=EdtContactowtc.Text;
AdoPublica.Post;
AdoPublica.Close;


y pasa lo mismo pero estube rastreando el codigo y antes me mamandaba el error en esta linea

AdoPublicaEVT_EVENTO.AsInteger:=ADODATASET1.FieldByName('ID_COTIZACION').AsInteger;

pero ahora es en la ultima en la de:

AdoPublica.Post;

Me imagino que era parte del problema.

gracias por ayudarme

enecumene
11-10-2008, 18:16:40
Bueno, ¿podrías colocar el error completo aquí? ;)

Saludos.

Yun-i
11-10-2008, 18:21:52
El mesaje de error es el mismo completo dice asi:

Project SIE.exe raised exception class EOleExeption withmessage 'el proveedor de datos u otro servicio devolvio un estado E_FAIL'.Process sttoped. Use Step or Run to continue

gracias:)

enecumene
11-10-2008, 18:27:42
¿Seguro que el servicio MySQL está corriendo? ¿o Solamente ocurre con ese código?

Yun-i
11-10-2008, 18:30:43
si el servicio esta arriba de hecho cree una aplicacion para probar y desde un dbgrid no tengo probelams para postearlo, pero es en otro proyecto.:(

enecumene
11-10-2008, 18:33:57
si el servicio esta arriba de hecho cree una aplicacion para probar y desde un dbgrid no tengo probelams para postearlo, pero es en otro proyecto.:(

Pues estoy seguro de que se trata de los campos fechas, verificate que los datos son correctos, formatos o están vacios, por ahí anda.

Saludos.

Yun-i
11-10-2008, 18:41:26
ok te agradezco mucho tu tiempo estare encontacto por aqui y verificando de que manera los debo madar gracias

Yun-i
13-10-2008, 18:25:34
Hola mira despues una larga busqueda de probales causas no puede hacer nada mas que cambiar los componentes de conexion estaba con los ado y lo cambine a un bde de delphi ya que lei que los componenest ado son para windows y aunque hay posibilidades de conectarse con mysql no es lo optimo, ya con los componentes no tube ningun problema con el post de datos, pero tengo un tipo de dato blob, que no me deja insertar el codigo quedo de la siguente manera:


dataMysql.AdoPublicaCOT_EVENTO.AsInteger:=ADODATASET1.FieldByName('ID_COTIZACION').AsInteger;
dataMysql.PublicaCOT_FECHA_INI.AsDateTime:=dtFechaIni.Date;
dataMysql.PublicaCOT_NOMBRE.AsString:=EdtEvento.Text;
dataMysql.PublicaCOT_FECHA_FIN.AsDatetime:=dtFechaFin.Date;
dataMysql.PublicaCOT_DESCRIPCION.Assign(RzMemo1.Lines);
dataMysql.PublicaCOT_CONTACTO_EVE.AsString:=EdtContactoE.Text;
dataMysql.PublicaCOT_SALONES.Assign(memoSaloCoti.Lines);
dataMysql.PublicaCOT_CONTACTO_WTC.AsString:=EdtContactowtc.Text;
dataMysql.PublicaCOT_M2.AsInteger:=edtm2.IntValue;
dataMySQL.PublicaCOT_IMAGEN.Assign(Image2.Picture);
dataMysql.Publica.Post;
dataMysql.Publica.Close;

Puiblica es una tabla en el datamodule dataMysql y todo lo hace bien en el insert, excepto

dataMySQL.PublicaCOT_IMAGEN.Assign(Image2.Picture);//aqui no guarda nada


No se si es por el tipo de dato o cual es mi error aqui
gracias por su ayuda como siempre.

Yun-i
13-10-2008, 19:05:05
ya jeje


la linea quedo asi


dataMySQL.AdoPublicaCOT_IMAGEN.LoadFromFile(RzOpenDialog1.FileName);


Gracias por todo

ahora me marca un error al cargar los datos especificamente en la imagen,

el error dice Bitmap imagen is not valid

ya me fije y la foto si se guarda en la tabla cuando la llamo la llamo de la siguente forma


Image2.Picture.Assign(DataMySQL.AdoPublicaCOT_IMAGEN.);

y ahi es donde manda el error creo que debo usar otra funcion. Gracias por ayudarme:)