Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-04-2007
snowlis snowlis is offline
Miembro
 
Registrado: nov 2006
Posts: 30
Poder: 0
snowlis Va por buen camino
Problema al escribir datos en tabla

Tengo dos tablas, una que se llama MAECLIE y la otra AVISOS. Las 2 estan en paradox y cada una tiene definidas sus respectivas claves principales. En avisos tengo definido un indice secundario con el que luego hago la relación con las 2 tablas.
Lo que hago es lo siguiente. Me he hecho un dblookupcombobox que me saca una lista desplegable con todos los nombres que encuentra en la tabla maeclie. Yo lo que quiero es que cuando seleccione un cliente, luego al darle a un botón que tengo me consulte el código que tiene ese cliente y me lo guarde en la tabla avisos en su respectivo campo.

El problema viene cuando hago clic en el botón para hacer todo eso y escribir ese dato en la tabla avisos (el número si que me lo saca bien), que me da el siguiente error : Query1: Cannot modify a read-only dataset.

El dataset he visto que es una propiedad del datasource(no un componente), pero no veo ningun sitio donde quitarle lo de la lectura.

Aquí os dejo el codigo del botón que os digo :

Código Delphi [-]
 
procedure TForm13.Button1Click(Sender: TObject);
var ncliente:Integer;
begin
Query1.Close;
query1.SQL.Clear;
Query1.SQL.add('SELECT CLIEN FROM MAECLIE WHERE NOME="'+DBLooKupComboBox1.Text+'"');
query1.Open;
ncliente:=Query1.Fields[0].AsInteger;
//edit1.Text:=inttostr(ncliente);
datasource3.DataSet.Active:=true;
datasource3.DataSet.Insert;
table1.FieldByName('NUMCLIENTE').AsInteger:=ncliente;
end;

He consultado otros temas que he visto en el foro sobre ese error pero no consigo solucionarlo. Para información, solo uso componentes ttable y datasource.

He probado otra cosa que he encontrado que es hacer lo siguiente :
Cita:
table1.Insert;
table1.FieldByName('NUMCLIENTE').AsInteger:=ncliente;
table1.Post;
Y tampoco funciona, ahora me dice Index is read only.

Saludos.

Última edición por snowlis fecha: 23-04-2007 a las 14:27:47.
Responder Con Cita
  #2  
Antiguo 23-04-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
Cita:
Empezado por snowlis
Query1: Cannot modify a read-only dataset.
si lees bien dice Query1, eso significa que tu datasource está apuntando a Query1 y no al table.
Cita:
Empezado por snowlis
Index is read only
se me ocurren dos posibilidades, tu archivo de indice no tiene permisos de escritura (revisa en las propiedades del archivo en el explorador de windows), o quizás tienes definido un índice secundario con propiedad mantained.

Saludos.
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 23-04-2007
snowlis snowlis is offline
Miembro
 
Registrado: nov 2006
Posts: 30
Poder: 0
snowlis Va por buen camino
Si, me había equivocado, ahora lo he cambiado y le he asignado la tabla que toca, que en mi caso apuntaba a la query y no a la tabla.

De vez en cuando me salta el error de index is read only y he revisado todo lo que dices y esta bien.

Ahora cuando le doy al botón para que escriba no me sale ningun mensaje de error y parece que va bien. Pero luego cuando voy a ver si hay algo en la tabla me sale vacía, no aparece nada.

También he probado a hacerlo de la siguiente manero me me sigue dando el mismo error --> Table1NUMCLIENTE.value:=valor;

EDITO: Ya he solucionado el problema, entre un amigo y yo hemos dado con la solución. Si ha alguien le interesa que lo diga y pondré el código en cuestión.

Saludos

Última edición por snowlis fecha: 24-04-2007 a las 00:44:24.
Responder Con Cita
  #4  
Antiguo 18-05-2007
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 21
ebeltete Va por buen camino
Hola tengo un problema semejante, tengo un tquery relacionado a un updatesql, el query funciona barbaro con insert, post, delete, etc. pero cuando le doy query.applyupdate me da este error "Table is read only", tengo la propiedad query.cachedupdate:= true.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recorrer Tabla, contar registro repetidos y escribir totales en otra Tabla Lucas_diaz1810 Conexión con bases de datos 1 25-12-2006 13:04:34
Como escribir información en una tabla de una base de datos servicomp Conexión con bases de datos 1 01-08-2006 18:10:41
Utilizar un DBGrid para leer de una tabla y escribir en otra taru MySQL 0 25-07-2006 18:31:06
Problema al hacer un update en una tabla con datos de otra Iseberiano SQL 3 08-06-2005 12:32:14
como escribir datos a un ListBox1 gulder API de Windows 2 23-05-2005 21:03:01


La franja horaria es GMT +2. Ahora son las 18:36:49.


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
Copyright 1996-2007 Club Delphi