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 04-06-2008
Avatar de pmtzg
pmtzg pmtzg is offline
Miembro
 
Registrado: jul 2007
Posts: 179
Poder: 17
pmtzg Va por buen camino
Question Commando IBtable1.Exists no me funciona

hola compañeros , tengo la siguiente situación, cuando intento saber si una tabla existe en una base de datos nunca me regresa el valor de True
a pesar de que la tabla existe este es mi codigo

Código Delphi [-]
 
 
Ibdatabase1.DatabaseName:= 'D:\Prueba\NDocto\BdIbx.fdb';                           IBDatabase1.DefaultTransaction:=IBTransaction1;
IBDatabase1.Params.Add('user_name=SYSDBA');
IBDatabase1.Params.Add('password=masterkey');
ibtransaction1.DefaultDatabase:=ibdatabase1;
ibdatabase1.Connected:=true;
ibdatabase1.Open;
IBtransaction1.Active:=true;
Ibscript1.Database:= Ibdatabase1;
ibsborra.Database:=ibdatabase1;
mitable:='latabla';   {nombre de la tabla}
IBscript1.Script.Strings[0]:='CREATE TABLE '+mitable;
IBSborra.Script.Strings[0]:='DROP TABLE '+mitable;
IBtable1.Database:=IBdatabase1;
IBtable1.TableName:=mitable;
IBtable1.Transaction:=IBtransaction1;
    if IBtable1.Exists then
       begin
       IBSborra.ExecuteScript;   {borro la tabla con datos};
       end;
      ibscript1.ExecuteScript;  {creo la tabla vacia}

no se que me falta o que estoy haciendo mal
espero que me puedan aydar
si quito el

if IBtable1.Exists then

y corro asi me programa si crea tabla o la borra
pero el problema viene cuando existe la tabla y no la borra
y ejecuto volver a crear una tabla nueva con el mismo nombre

gracias
Responder Con Cita
  #2  
Antiguo 04-06-2008
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Hola, mira el código del procedimiento GetExists del IBTable:

Código Delphi [-]
function TIBTable.GetExists: Boolean;
var
  Query: TIBSQL;
begin
  Result := Active;
  if Result or (TableName = '') then Exit;
  Database.InternalTransaction.StartTransaction;
  Query := TIBSQL.Create(self);
  try
    Query.Database := DataBase;
    Query.Transaction := Database.InternalTransaction;
    Query.SQL.Text :=
    'Select USER from RDB$RELATIONS where RDB$RELATION_NAME = ' + {do not localize}
    '''' +    {do not localize}
    FormatIdentifierValue(Database.SQLDialect,
      QuoteIdentifier(DataBase.SQLDialect, FTableName)) + '''';  {do not localize}
    Query.Prepare;
    Query.ExecQuery;
    Result := not Query.EOF;
  finally
    Query.Free;
    Database.InternalTransaction.Commit;
  end;
end;

Quizás te interese hacer un procedimiento similar, pero que tenga en cuenta alguna opción más que quieras comprobar tu.

Salu2.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...

Última edición por defcon1_es fecha: 04-06-2008 a las 10:28:07.
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
Problema serios con predicados IN, NOT IN, EXISTS, ... mlara Firebird e Interbase 7 15-05-2008 19:43:41
Transaccion con if y con exists zvf SQL 4 18-09-2007 18:52:44
Error A component Named Matri already Exists janlo Varios 5 28-07-2006 07:16:39
Error en el Exists Payola2011 MySQL 7 31-01-2006 19:17:47
-502 Declared cursor already exists Carlitos Firebird e Interbase 4 30-09-2003 17:18:22


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


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