![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola agustinbus.
¿ Podrías poner la parte del código donde realizas la modificación o inserción ? Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#2
|
|||
|
|||
|
Hola ecfisa! claro que si, gracias por responder tan rapidamente. En un boton tengo este codigo:
Código:
if fAddTable.Caption = 'Add table' then
begin
if (JvEdit1.Text = '') then
begin
MessageBox(handle,'Table ID field are required','Required fields',MB_OK);
end
else
begin
Form1.QMesas.Open;
Form1.QMesas.Insert;
Form1.QMesasSECTOR.Value := Form1.QSectoresCODIGO.Value;
Form1.QMesasESTADO.Value := 'READY';
Form1.QMesasPERSONAS.Value := StrToInt(JvSpinEdit1.Text);
Form1.QMesasCODIGO.Value := JvEdit1.Text;
Form1.QMesasWIDTH.Value := 60;
Form1.QMesasHEIGHT.Value := 60;
Form1.QMesasLEFT.Value := 300;
Form1.QMesasTOP.Value := 300;
if RadioButton1.Checked = TRUE then
begin
Form1.QMesasFUMADOR.Value := RutaFumador;
end
else
begin
Form1.QMesasFUMADOR.Value := RutaNoFumador;
end;
Form1.QMesas.Post;
fAddTable.Close;
Ese es el codigo que tenia ccuand hacia las inserciones en access, pero ahora siguiendo un poco el tutorial para novatos creado por caral(si bien recuerdo) coloque unIBDatabase enlazado a un IBTransaction y los IBQuery correspondientes con Datasources enlazados a ellos para poder mostrarlos en una grilla. La coneccion funciona correctamente pero al querer insertar un registro aparece el error. |
|
#3
|
||||
|
||||
|
Hola agustinbus.
Si estas usando un TIBQuery, el uso más o menos sería así: Donde "TU_TABLA" es el nombre de la tabla y el resto son los campos cuyos nombres y tipos intenté que correspondieran lo más posible con los tuyos. Pero si te interesa trabajar en forma similar a un TTable con las ventajas de un TQuery con los componentes IBX yo usaría un TIBDataSet. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#4
|
|||
|
|||
|
Muchas gracias por la respuesta, estube probando con una actualizacion y sale un error. Adapte tu codigo y busque en google como es la sintaxis de update. Pero me sale el siguiente error:
'Dynamic SQL Error SQL error code= -104 token unknown -line 1, column 55 LEFT'. y despues de darle a continue me sale otro error: 'Unknown SQL data type (0)'. el codigo que tengo es el siguiente: Código:
with QMesas do
begin
Close;
SQL.Clear;
SQL.Add('UPDATE MESAS SET WIDTH = :WID, PERSONAS = :PER, HEIGHT = :HEI, LEFT = :LEF, TOP = :TO ');
SQL.Add('WHERE CODIGO = :COD');
ParamByName('WID').Value := ctrl.Width;
ParamByName('HEI').Value := ctrl.Height;
ParamByName('PER').Value := ctrl.Tag;
ParamByName('LEF').Value := ctrl.Left;
ParamByName('TO').Value := ctrl.Top;
ParamByName('COD').Value := Form1.QMesasCODIGO.Value;
ExecSQL;
Open;
end;
Si saco el campo LEFT de la sentencia SQL no sale ningun error, pero no realiza la actualizacion. Espero puedas ayudarme. Saludos! |
|
#5
|
||||
|
||||
|
Hola Agustín.
Cita:
En un principio me llamó la atención que la tabla "MESAS" que supongo almancena la cantidad de personas, el sector de ubicación, etc. de un grupo de mesas, tenga como nombres de campo a LEFT,WIDTH, HEIGHT, TOP... Disculpame si te hago una pregunta tonta ¿ No estarás intentando darle las propiedades Left,Width,Height,Top de TControl al componente de datos TIBQuery ? Aclararía mucho que nos dieras una brebe descripción sobre que almancenan los campos de la tabla "MESAS" (a que concepto corresponde lo que se guarda en TOP , LEFT o WIDTH por ejemplo ) Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#6
|
||||
|
||||
|
También puede ser que confunda 'LEFT' con la palabra reservada 'LEFT JOIN'.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#7
|
|||
|
|||
|
Hola como estan! Les comento, esos campos los utilizo porque creo componentes en tiempo de ejecucion para hacer un mapa de las mesas y guardo el cada mesa su respectiva posicion y tamaños para poder cargarlos nuevamente en el mapa de mesas. El campo LEFT si existe en la tabla Mesas, tal vez el error este relacionado a lo que dice casimiro. Miren les dejo el codigo completo:
Código:
procedure TForm1.Action9Execute(Sender: TObject);
var
CompName:String;
comp : TComponent;
ctrl : TControl;
begin
QMesas.First;
while not QMesas.Eof do
begin
CompName := QMesasCODIGO.Value;
comp := Self.FindComponent(CompName);
if Assigned(comp) then
begin
SelectOnRunTime1.SelectControl := TControl(comp);
//SelectOnRunTime1.Selected := True;
ctrl := SelectOnRunTime1.SelectControl;
end;
with QMesas do
begin
Close;
SQL.Clear;
SQL.Add('UPDATE MESAS SET WIDTH = :WID, PERSONAS = :PER, HEIGHT = :HEI, TOP = :TO ');
SQL.Add('WHERE CODIGO = :COD');
ParamByName('WID').Value := ctrl.Width;
ParamByName('HEI').Value := ctrl.Height;
ParamByName('PER').Value := ctrl.Tag;
//ParamByName('LEF').Value := ctrl.Left;
ParamByName('TO').Value := ctrl.Top;
ParamByName('COD').Value := Form1.QMesasCODIGO.Value;
ExecSQL;
Open;
end;
QMesas.Next;
end;
end;
Ahora probare cambiando el campo LEFT por otro en la tabla. Saludos y muchas gracias por su tiempo! |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Error DataSet is read Only | mightydragonlor | Lazarus, FreePascal, Kylix, etc. | 10 | 08-11-2008 21:43:16 |
| Error 'Cannot modify a read-only dataset' | karaoke | Varios | 8 | 10-12-2007 06:38:31 |
| Al intentar modificar un campo me dice "Cannot modify a read-only dataset" | raulahol | SQL | 1 | 22-01-2007 05:16:53 |
| error cannot modify a read-only dataset | Renees | Varios | 2 | 30-09-2006 00:39:27 |
| Query1 cannot modify a read-only dataset | Nbull | SQL | 14 | 14-12-2004 10:29:35 |
|