Ver la Versión Completa : consulta en sus propiedades de Tquery
jorgito
20-01-2006, 22:44:47
Holas estoy realizando consultas con Tquery en sus propiedades SQL, en delphi. al realizar consultas de select me sale bien, pero al insertar datos a mi base de datos me sale error.
select *from amacen.db where codigo=:cod_cli
insert into almacen.db values (:codigo,:nombre,:direccion,:telefono)
esta mal algo insert y como se realiza el update y delete. una ayuda porfavor.
Hola,
No tengo mucha experiencia, pero, creo que tienes que hacer algo así:
INSERT INTO almacen.db (campo1, campo2, campo3, campo4)
VALUES (:codigo,:nombre,:direccion,:telefono)
En el apartado Manuales (http://www.clubdelphi.com/manuales/) del ClubDelphi encontrarás uno sobre SQL que puede venirte bien. ;)
jmariano
20-01-2006, 23:25:33
También estaría bien que dijeras que mensaje de error te está dando o que pusieras algo del código donde estás ejecutando la consulta, porque la sentencia en sí la tienes correcta.
De todas formas, fíjate si estás creando los parámetros que le estás pasando al objeto TQuery, propiedad "Params", y si estás asignando valores correctos a estos parámetros antes de ejecutar la consulta.
Saludos!
roman
20-01-2006, 23:34:04
porque la sentencia en sí la tienes correcta
Sólo si la tabla tiene cuatro columnas y los valores se dan en el mismo orden, de lo contrario tendrá que especificar las columnas tal como indica dec
Quizá el error provenga de como ejecuta la consulta. En lugar de Open o Active := true, debe usar ExecSQL.
// Saludos
jorgito
21-01-2006, 00:53:25
me sigue saliendo el error
error
query2:field 'codigo' 'nombre' ' direccion' 'telefono' is of an unknown type
este es mi codigo para invocar al query
query2.Open;
query2.ParamByName('codigo').asstring:=edit1.Text;
query2.ParamByName('nombre').asstring:=edit1.Text;
query2.ParamByName('direccion').asstring:=edit1.Text;
query2.ParamByName('telefono').asstring:=edit1.Text;
query2.ExecSQL;
y si me sale los params del query2
jmariano
21-01-2006, 13:01:46
Edita la propiedad "Params" del TQuery e indica el tipo de datos de los parámetros, propiedad "DataType", ya que por defecto esta propiedad toma el valor "ftUnknown" (es decir, tipo "desconocido").
Saludos!
vtdeleon
21-01-2006, 15:46:10
Saludosya que por defecto esta propiedad toma el valor "ftUnknown" (es decir, tipo "desconocido").Por lo regular esa propiedad cambia cuando se especifica el parametro con AsDate, AsString, AsInteger.
Query.Connection.Connected := TRUE;
Query.SQL.Text := 'INSERT INTO tabla (campo, campo2) values(:campo1, :campo2)';
Query.ParamByName('campo').AsString := Edit1.Text;
Query.ParamByName('campo2').AsString := Edit2.Text;
Query.ExecSQL;
cuburu
31-01-2006, 02:43:17
Hola,
Quizas lo que podrías hacer es armar el query desde 0, creandolo tu mismo a tus necesidades.
Necesitas ordenar los campos que deseas ingresar, para eso te sirve lo que se encuentra despues de tutabla encerrado entro parentesis, y después en values va la información de los campos.
var
Cons: TQuery;
begin
Cons := TQuery.Create(nil);
try
with Cons do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO tutabla(campo1, campo2, ..., campon) VALUES(:Campo1, :Campo2, ..., :Campon)');
ParamByName('Campo1').asString := Edti1.Text;
ParamByName('Campo2').asString := Edti1.Text;
...
ParamByName('Campon').asString := Edti1.Text;
Prepare;
Open;
end;
finally
Cons.Free.
end;
end;
el finally lo que hace es que no importa lo que pase, se finalice bien, mal, o lo que sea.... siempre se ejecuta y en este caso elimina el objeto creado de la BD.
Suerte.
Jonnathan
31-01-2006, 15:57:35
Buen dia. Con las sugerencias para el paso de parámetros ya no deberías tener problemas. Aqui esta lo demás que pediste:
Suponiendo que tus campos son Codigo, Nombre, Direccion, Telefono y que el campo clave de la tabla es Codigo:
Para hacer un Update
Update almacen.db
Set
Codigo=:Codigo,
Nombre=:Codigo,
Direccion=:Codigo,
Telefono=:Codigo
where
Codigo=:OLD_Codigo
Donde OLD_Codigo es el el valor de "Codigo" del registro que vas a modificar.
Para hacer un Delete
Delete from almacen.db
where
Codigo=:OLD_Codigo
Donde OLD_Codigo es el el valor de "Codigo" del registro que vas a borrar. Saludos :).
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.