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 16-06-2005
Barzaugc Barzaugc is offline
Miembro
 
Registrado: jun 2005
Posts: 50
Poder: 19
Barzaugc Va por buen camino
Saber si ADOTable Existe

Un gran saludo al mundo delphi, no se si me podrían ayudar con una duda, lo que pasa es que deseo crear una tabla temporal con un omponente ADOTable, donde al iniciar la aplicacion se destruya la tabla existente y por medio de un boton crearla de nuevo, pero como saber si la tabla existe al iniciar la aplicacion ya que marca un error cuando no se ha creado, con el componente Table es mas facil, ya que tiene la propiedad Table.Exists, pero con ADO no se como hacerlo, tal vez ustedes tengan algunas buenas sugerencias.

Saludos y Gracias.
Responder Con Cita
  #2  
Antiguo 17-06-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No comentas la BD que usas, ya que con ADO puedes conectar a varias de ellas. De todas formas, se me ocuurren 2. Algunas Base de Datos poseen una tabla (sysObjects, por ejemplo para SQLServer) donde están todos los objetos de la BAse de Datos, basta con que consultes si hay algun elemento de tipo tabla con ese nombre. Otra más "ruda", pero más simple, es lanzar una SQL como ésta:

Código SQL [-]
   Select * from tabla1

Y capturar el posible error (por si no existe); Si no da error es que ya existe.
MEJORA: Haz un TOP 1 (si lo permite) y pregunta por un único campo en lugar de por todos (*).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 17-06-2005
Barzaugc Barzaugc is offline
Miembro
 
Registrado: jun 2005
Posts: 50
Poder: 19
Barzaugc Va por buen camino
Estoy usando un base de datos en Access, me dices que capture el error, pero para ese error no se como hacerlo, cuando ejecuto la consulta en SQL, sale "class EOleException, el motor de BD no encuentra la tabla INVTABLA", Hice esto para reconocer el error, pero me marca error en el EOleException, lo tengo asi:

adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from INVTABLA');
try
adoquery1.ExecSQL;
except
On EOleException do
Showmessage('No Existe la Tabla');
end;

Esta es la manera de capturar el error o hay otras?
Responder Con Cita
  #4  
Antiguo 20-06-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Pues esa es una buena manera:

Código Delphi [-]
   try
     ADOQuery1.ExecSQL;
     MessageDlg('Si sale éste mensaje es que la tabla existe.', mtWarning, [mbOK], 0);
   except
     On E:EOleException do begin
       Showmessage('Si sale éste, es que no existe');
     end;
   end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 20-06-2005
Barzaugc Barzaugc is offline
Miembro
 
Registrado: jun 2005
Posts: 50
Poder: 19
Barzaugc Va por buen camino
Con esos ajustes ya salio muy bien, te agradezco mucho tu tiempo.

Hasta Luego!
Responder Con Cita
  #6  
Antiguo 12-06-2006
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por Neftali
Pues esa es una buena manera:


Código Delphi [-]
try
ADOQuery1.ExecSQL;
MessageDlg('Si sale éste mensaje es que la tabla existe.', mtWarning, [mbOK], 0);
except
On E:EOleException do begin
Showmessage('Si sale éste, es que no existe');
end;
end;


Tenia el mismo problema y la misma duda, pero no me funciona, me sigue saltando la excepcion, no la captura.

Listo, lo solucione, era una pavada, habia hecho un par de procedimientos con nombres muy similares y seleccionaba mal, jejej, a veces pasa.

Última edición por MaMu fecha: 12-06-2006 a las 17:33:58.
Responder Con Cita
  #7  
Antiguo 12-06-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Esta es otra manera; Mira este hilo:
http://www.clubdelphi.com/foros/show...67&postcount=3
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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 17:10:24.


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