Saber si una tabla existe !
Hola, he buscado como lograr saber por código 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 selección 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 códigos y no logro dar con un valor que me identifique ello:
Acá en el objeto recordcount() siempre me da valor -1 este creada, con registros, o no exista la tabla, ¿dónde esta mi error? He probado otros métodos y tampoco me funcionan una pequeña mano me caería 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
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 selección 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 códigos y no logro dar con un valor que me identifique ello:
Acá en el objeto recordcount() siempre me da valor -1 este creada, con registros, o no exista la tabla, ¿dónde esta mi error? He probado otros métodos y tampoco me funcionan una pequeña mano me caería 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
1 respuesta
Respuesta de Alonso Jarrín Solís
1