Delphi - para expertos en querys

 
Vista:

para expertos en querys

Publicado por Armando (28 intervenciones) el 12/02/2003 19:34:22
hola a todos, tengo un problema con un TQuery y un TUpdateSql, las propiedades que configure del TQuery son las siguientes:
DataBaseName = C:\datos
SQL = SELECT * FROM Recibos ORDER BY Servicio ASC
UpdateObject = UpdateSQL1
RequestLive = True
AutoRefresh = True
Active = True

En el evento OnClick de un TButton puse lo siguiente:
begin
UpdateSQL1.Query[ukInsert].Add('INSERT INTO RECIBOS');
UpdateSQL1.Query[ukInsert].Add('(Servicio,Contrato,Tipo,PagaDAP)');
UpdateSQL1.Query[ukInsert].Add('VALUES(:Ser,:Con,:Tipo,:Paga)');
UpdateSQL1.Query[ukInsert].ParamByName('Ser').AsFloat:=StrToFloat(Edit1.Text);
UpdateSQL1.Query[ukInsert].ParamByName('Con').AsString:=Edit2.Text;
UpdateSQL1.Query[ukInsert].ParamByName('Tipo').AsString:=ComboBox1.Text;
UpdateSQL1.Query[ukInsert].ParamaByName('Paga').AsBoolean:=CheckBox1.Checked;
UpdateSQL1.ExecSQL;
end;

pero no ocurre nada, aparentemente, porque al volver a inciar la aplicacion si aparece el registro nuevo, pero acaso no hay manera de que este cambio se efectue de manera instantantea, lo mismo me ocurre al hacerlo con un DELETE o UPDATE, trate de hacerlo cambiando la propiedad CacheUpdates del TQuery a True y cambiando la ultima linea del vento OnCick (ExecSQL) por ApplyUpdates, pero nada.
Si alguien me pudiera ayudar estaria muy agradecido.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:para expertos en querys

Publicado por Ernesto D'Spirito (706 intervenciones) el 17/02/2003 07:22:20
Lo que sucede es que lo que tú haces en el evento Click de los botones es insertar, eliminar o actualizar un registro en la tabla por fuera del esquema de actualizaciones cacheadas (cached updates), y por eso no ves los cambios reflejados en la consulta que tienes abierta.

En lugar de lo que haces, activa el CachedUpdates en la consulta, y deja actuar las consultas de las propiedas InsertSQL, DeleteSQL y ModifySQL del componente UpdateSQL para realizar la inserción, eliminación y modificación de registros respectivamente, la que realizarás de la manera convencional con los métodos Append, Delete y Edit del componente TQuery respectivamente.

Lee el tema "Working with cached updates" en la ayuda de Delphi o en el manual y observa los ejemplos que vienen con delphi: Help\Examples\Update y Demos\Db\Cachedup (¿en el CD?).

Saludos,

Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar