Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Problemas con insert y mysql (https://www.clubdelphi.com/foros/showthread.php?t=70336)

LeandroRene 15-10-2010 01:39:22

Problemas con insert y mysql
 
Hola a todos, tengo un problema con delphi 7 y mysql 5.2 usando ODBC para mysql 5.2, tengo un formulario donde cargo los datos para realizar un cálculo que luego ira a gurdarse en una base de datos usando INSERT INTO, los campos que cargo en el formulario son del mismo tipo que estan soportados en la base de datos, el error que me tira es una excepción del tipo EDBEngineError with message 'Table ir read only', según el motor me esta diciendo que la tabla es del tipo solo lectura, entonce slo que hice fue mirar en las propiedades del Query y no vi propiedad alguna que me permita modificar la tabla de solo lectura a escritura, para mejor detalle les dejo el codigo fuente.
procedure TComputoDosis.CheckBox1Click(Sender: TObject);
begin

Query3.Close;
// Query3.SQL.Clear;
Query3.Params[0].Value:=StrToInt(Edit12.Text);
Query3.Params[1].Value:=date();
Query3.Params[2].Value:=StrToInt(Edit2.Text);
Query3.Params[3].Value:=StrToInt(Memo1.Text);
Query3.Params[4].Value:=StrToInt(Memo2.Text);
Query3.Params[5].Value:=StrToInt(Memo3.Text);
Query3.Params[6].Value:=StrToInt(Edit5.Text);
Query3.Open;

end;

Aquí les dejo la salida del detalle de mi tabla Nutriente, les comento que los parametros estan en el mismo orden en el que aparecen en la tabla, y la sentencia sql INSERT es la siguiente:

INSERT INTO Nutriente ( id_lote, fechaHistorica, id_cultivo, dosis_N, dosis_P, dosis_K, rinde_esperado ) VALUES ( :id_lote, :fechaHistorica, :id_cultivo, :dosis_N, :dosis_P, :dosis_K, :rinde_esperado )

sin el ';' al final, esta sentencia la pongo en la propiedad SQL del Object Inspector, espero que le sea de utilidad la información porque la verdad que yo no lo estoy viendo la falla, soy nuevo en la programación de delphi y si tienen alguna documentación que me pueda ser útil por favor me podría pasar un link asi me instruyo gracias comunidad y cualquier cosita volveré XD.

| id_lote | int(11) | NO | PRI | 0 |
| fechaHistorica | date | NO | PRI | 0000-00-00 |
| id_cultivo | smallint(6) | YES | | NULL |
| dosis_N | smallint(6) | YES | | NULL |
| dosis_P | smallint(6) | YES | | NULL |
| dosis_K | smallint(6) | YES | | NULL |
| rinde_esperado| int(11) | YES | | NULL |
+--------------+------------+-----+----+----------+--

cloayza 15-10-2010 16:22:58

Amigo lo primero que te sugiero es que leas guia de estilo

Segundo, si lo que estas ejecutando es un Insert, debes realizar el siguiente cambio.

Código Delphi [-]
Query3.Close;
// Query3.SQL.Clear;
Query3.Params[0].Value:=StrToInt(Edit12.Text);
Query3.Params[1].Value:=date();
Query3.Params[2].Value:=StrToInt(Edit2.Text);
Query3.Params[3].Value:=StrToInt(Memo1.Text);
Query3.Params[4].Value:=StrToInt(Memo2.Text);
Query3.Params[5].Value:=StrToInt(Memo3.Text);
Query3.Params[6].Value:=StrToInt(Edit5.Text);
{Query3.Open;}
Query.ExecSQL;

Cuando usas INSERT, UPDATE, DELETE debes usar ExecSQL
Cuando usas SELECT debes usar OPEN;

Espero que soluciones tu problema.

Saludos


La franja horaria es GMT +2. Ahora son las 08:11:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi