Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-03-2005
kryna kryna is offline
Miembro
 
Registrado: mar 2005
Posts: 46
Poder: 0
kryna Va por buen camino
luegode la busqueda los DBedit estan bloqueados

hola a todos...

Estoy haciendo un programa que contiene 3 tablas t1, t2, t3 en las que inserto, modifico, elimino los registros de estas tablas mediante las instrucciones tabla.insert... tabla.edit...tabla.delete... y me funciona bien..

La consulta la estoy realizando mediante Tquery y tambien me funciona..

El problema viene cuando consulto un registro para luego eliminarlo o modificarlo, ya que luego que regresa la busqueda los DBedit estan como bloqueados.. y no permiten escritura.. a que se debe esto

Este es el codigo de busqueda
if editorcodigo <> nil then

qrycodigo.Close;
qrycodigo.ParamByName('Codigo').AsInteger := StrToInt(editorcodigo.text);
Dscodigo.dataset := qrycodigo;
qrycodigo.Open;

el codigo del query es

SELECT *FROM tb1, t2, t3

WHERE (tb1.c1 = t2.c2) AND (t2.c2 = t3.c2) AND (t2.c2 = :Codigo)


El gestor es paradox

Espero me haya podido explicar
Responder Con Cita
  #2  
Antiguo 01-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Desde un Query que une varias tablas, en paradox, no se puede borrar, y mucho menos mantener la integridad referencial, por tanto:

- Te queda anotar el codigo o clave primaria de cada tabla, y despues borrarlo de las 3 tablas.

Para el borrado, puedes hacer una consulta con:
Código Delphi [-]
query1.sql.clear;
query1.sql.text := 'DELETE FROM T1 WHERE T1.C1 = :codigo';
query1.ParamByName('Codigo').AsInteger := StrToInt(editorcodigo.text);
query1.ExecSql;
Y repetir el proceso para las 2 tablas.

O bien hacer:
Código Delphi [-]
if tabla1.locate('Codigo',StrToInt(editorcodigo.text), []) then
 tabla1.delete
else
  showMessage('codigo no encontrado');
Personalmente prefiero la primera, ya que no mueve el registro activo de esa tabla.

Un saludo, y recuerda englobar entre [ delphi ] y [ /delphi ] tu código para que sea más legible.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 01-04-2005
kryna kryna is offline
Miembro
 
Registrado: mar 2005
Posts: 46
Poder: 0
kryna Va por buen camino
funciona perfecto para borrar pero para incluir o modificar??

Hola!!!!

Muchas gracias me funciono perfecto para borrar pero si lo que quiero es incluir o modifica registros como tengo que hacer??

lo estoy haciendo de la siguiente manera

Tb1.Insert;
Tb1.FieldByName('c1').AsString := Clave;
Tb1.FieldByName('c2').AsString := clave2;
Tb1.FieldByName('c3'.AsString := clave3;
Tb1.Post;
Tb1.Next;
Tb1.FlushBuffers;
Tb1.Close;

Quisiera hacer la inclusion y modificacion mediante Tquery
Responder Con Cita
  #4  
Antiguo 02-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Revisa este hilo

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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


La franja horaria es GMT +2. Ahora son las 16:05:05.


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