FoxPro/Visual FoxPro - Existencia de tabla en base de datos sql server

   
Vista:

Existencia de tabla en base de datos sql server

Publicado por Asthar (1 intervención) el 04/05/2010 06:25:26
Hola, he buscado como lograr saber por codigo si una tabla existe en una base de datos sql server y he llegado hasta esto:


oConexion = CreateObject("ADODB.Connection")
With oConexion
.ConnectionString = "dsn=Profit_a;uid=sa;pwd=051069ds"
.Open
ENDWITH

oTablaAuxiliar = oConexion.Execute ("Select 'InvTemp' from SysObjects where xType='U'",oConexion)


---- hasta acá va bien ya que esa seleccion dentro de SySObjects es correcta, ahora, se me enrolla el trompo cuando trato de saber si oTablaAuxiliar tiene un valor que pueda decirme por ejemplo 0 =no existe, 1=existe....


he probado con los siguientes codigos y no logro dar con un valor que me identifique ello:

aca en el objeto recordcount() siempre me da valor -1 este creada, con registros, o no exista la tabla, donde esta mi error? he probado otros metodos y tampoco me funcionan una pequeña mano me caeria bien....Gracias.

IF (otablaAuxiliar.recordcount()=-1) then

* ** no existe la tabla.... ahora a crearla...

oConexion.Execute("create table InvTemp(Cod char(10),Can char(8),existe char(1))",oConexion)

*** agrego un registro en para evitar errores posteriores del ADO

oConexion.Execute("insert into InvTemp values('2V','2','2')",oConexion)

ELSE

* *existe la tabla, ahora a borrar sus datos...

* oConexion.Execute("delete * ",oConexion)

MESSAGEBOX( "Ya existe la tabla InventarioTemporal ")

endif

oconexion.close
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauricio

Existencia de tabla en base de datos sql server

Publicado por Mauricio (1368 intervenciones) el 04/05/2010 16:43:10
Prueba esta opcion:
******************
SET PATH TO HOME( )
CLEAR
IF FILE('foxuser.dbf')
WAIT WINDOW 'Archivo de recursos de Visual FoxPro presente'
ELSE
WAIT WINDOW 'Archivo de recursos de Visual FoxPro no presente'
ENDIF
*
PD esto esta en la ayuda, solo lo he copiado!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Existencia de tabla en base de datos sql server

Publicado por jose camilo (688 intervenciones) el 05/05/2010 01:18:30
el ejemplo anterior es para vfp no para sql pera nada para eso estamos
y gracias por el apoyo

en lo personal usaria algo como

If sqlexec(miconeccion,"select * from la tabla") >0
existe
else
no existe
endif

puedes probar si funciona top 1 no recuerdo y no tengo mi pc a mano para probar
o quizas select uncampo
esto es para no cargar todos los datos que esten
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Existencia de tabla en base de datos sql server

Publicado por michael (45 intervenciones) el 05/05/2010 18:44:57
prueba con la siguiente sentencia

If sqlexec(conexion," select * from information_schema.tables where table_name='tabla_a_buscar' ") >0
wait ' existe ' window
else
wait ' No existe ' window
endif

saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar