Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Pregunta VB6 con SQL Server 2000

Estas en el tema de Pregunta VB6 con SQL Server 2000 en el foro de Visual Basic clásico en Foros del Web. Hola a todos, espero que alguien me pueda ayudar, he estado implementando SQL Server a mi sistema porque se piensa mudar nuestras bases de datos ...
  #1 (permalink)  
Antiguo 05/09/2006, 15:04
 
Fecha de Ingreso: febrero-2006
Mensajes: 56
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta VB6 con SQL Server 2000

Hola a todos, espero que alguien me pueda ayudar, he estado implementando SQL Server a mi sistema porque se piensa mudar nuestras bases de datos a esta, tengo una duda, alguien sabe como puedo hacerle para revisar antes de hacer cualquier operacion en una tabla si esta existe?? osea, antes de hacer un INSERT o SELECT o DROP o cualquier otra accion sobre la tabla revisar si esta existe??

he visto que en algunos lados usan "IF EXISTS" pero no me esta funcionando, creo que es para .NET no para VB6, tambien he visto que usan: "if object_id('object_name', 'U') is not null" pero tampoco funciona en vb6, o si alguien sabe si estos sí deben de funcionar para que me diga como, alomejor estoy haciendo mal las cosas...estaba tratando de hacer que checara si existe el nombre en la tabla "sysobjects" pero no se puede porque el campo Name es de tipo "sysname" o algo asi...:S y pues no compara nada.

Espero que alguien me pueda ayudar ya que llevo rato en esto y no he podido.

Saludos y Gracias
  #2 (permalink)  
Antiguo 05/09/2006, 15:38
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 18 años, 9 meses
Puntos: 2
hola la mayoria de esas funciones son para el sql y se pueden programar a traves de Procedimientos Almacenados, busca informacion por ese lado, lo que si te aseguro es que si funcionan en SQL Server 2000 y que siendo asi puedes tomar su resultado desde VB6 xD
  #3 (permalink)  
Antiguo 05/09/2006, 15:46
 
Fecha de Ingreso: febrero-2006
Mensajes: 56
Antigüedad: 19 años, 2 meses
Puntos: 0
por ejemplo, tengo esto

cnn.BeginTrans
cnn.Execute _
"DELETE FROM Prueba"
cnn.CommitTrans


tons lo cambio para ponerle el if exists

cnn.BeginTrans
cnn.Execute _
"IF EXISTS (DELETE FROM Prueba)"
cnn.CommitTrans

Pero no me funciona comoquiera.
  #4 (permalink)  
Antiguo 05/09/2006, 16:23
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 18 años, 9 meses
Puntos: 2
ok vamos por parte, los procedimientos almacenados son (valga la rebundancia) procedimientos almacenados en tu server sql y a los cuales puedes llamar desde visual basic (o cualquier otro lenguaje que lo permita), y es aca donde puedes ejecutar bloques de sentencias que SQL permite(tambien lo permite desde los triggers y funciones, pero eso los estudias tu por tu lado), un ejemplo de ello seria algo asi (esto deberia ir como procedimiento en sql server, te lo vuelve a aclarar)

create procedure dbo.spExisteCliente
(
@IdCliente varchar(50)
)
AS
BEGIN
set nocount on
if exists (select RazonSocial from tClientes where IdCliente = @IdCliente)
select 1 as RC
else
Select 0 as RC
END
GO


como vez es un procedimiento que se ejecuta y devuelve a traves de un recordset un 1 si existe el idcliente y un 0 si no, ahora veamos su uso desde visual basic

cnn = conexion existente

dim RstResultado as Adodb.Recordset

sql = "spExisteCliente '" & trim(txtIdCliente.text) & "'"
set RstResultado = cnn.execute(sql)
if RstResultado!Rc = 1 then
msgbox "Cliente Existe"
else
msgbox "Cliente No Existe"
Endif
  #5 (permalink)  
Antiguo 05/09/2006, 16:34
 
Fecha de Ingreso: febrero-2006
Mensajes: 56
Antigüedad: 19 años, 2 meses
Puntos: 0
AA ok, ya medio te entiendo, perdon mi ignorancia jejee esque es la primera vez que uso SQL Server, hoy lo acabo de instalar....:S soy muy nuevo en esto...jejee

pero ya entendi tu idea, voy a ver como puedo crear un procedimiento que me diga si existe una tabla o no, creo que no hay uno ahi.

Gracias por tu apoyo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:11.