Ejecutar lote sql desde ado

10/08/2004 - 21:47 por Carlos A. Díaz | Informe spam
Hola, estoy intentando ejecutar un lote de instrucciones sql contra un
SQLSERVER y estoy intentando usar el procedimiento execute del objeto
connection de ado, pero no me da resultado, el lote seria masomenos asi:
(fue creado con el asistente)

USE GestCor
GO

if not exists (select * from master..syslogins where name N'GestCorProgram')
BEGIN
declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb N'GestCor', @loginlang = N'Español'
if @logindb is null or not exists (select * from master..sysdatabases where
name = @logindb)
select @logindb = N'master'
if @loginlang is null or (not exists (select * from master..syslanguages
where name = @loginlang) and @loginlang <> N'us_english')
select @loginlang = @@language
exec sp_addlogin N'GestCorProgram', '[pwd]' , @logindb, @loginlang
END
GO

Pero cuando paso esta cadena, me da error, intente con sp_executesql y
tampoco, me podrian decir como seria para ejecutar ese lote desde el execute
de objeto connection y vb.

Saludos

Gracias

Preguntas similare

Leer las respuestas

#11 Miguel Egea
12/08/2004 - 22:09 | Informe spam
http://www.configuracionesintegrale...p?articulo1

Creo carlos que con esto lo puedes solucionar.
Por otra parte SoftJaen tenia parte de razon use no es una palabra reservada
del analizador de consultas, pero no tiene mucho efecto si la ejecutas
dentro de una conexion ado o ado.net. Tampoco la tiene si lo haces con
ejecucion dinamica, asi que tendras que modificar el codigo que tienes en el
articulo para que si hay un use y no es a la BBDD en donde quieres ejecutar
los comandos o bien poner el nombre en 3 partes BBDD.owner.Tabla o bien
implementar un cambio de bbdd en la conexion, el objeto connection tiene un
metodo para eso.

Suerte

-
Miguel Egea Gómez
Microsoft SQL-Server MVP
Webmaster de PortalSql.Com
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?



"Carlos A. Díaz" escribió en el
mensaje news:%
Muchas gracias Franco, cosa de nada probe con todo y estaba ahi en esa
pavada, pasa que lo hice con el asistente de SQL y le pone el GO.
Nuevamente gracias

Carlos

"Lluís Franco" escribió en el mensaje
news:
> Hola Carlos,
> Es comando GO no es propio de T-SQL y solo es reconocido por el cliente
sql.
> [...] "GO is not a Transact-SQL statement; it is a command recognized by
the
> osql and isql utilities and SQL Query Analyzer..."
>
> Private Sub Command1_Click()
> Dim oCon As New ADODB.Connection
> Dim sSQL As String
> oCon.Open _
> "Provider=SQLOLEDB.1;" & _
> "Persist Security Info=False;" & _
> "User ID=sa;" & _
> "Initial Catalog=pubs;" & _
> "Data Source=SERV_SQL"
>
> sSQL = sSQL & "USE Pubs "
> sSQL = sSQL & "SELECT * FROM authors "
> sSQL = sSQL & "USE Northwind "
> sSQL = sSQL & "SELECT * FROM Customers"
>
> oCon.Execute sSQL
> oCon.Close
> Set oCon = Nothing
> End Sub
>
> Acabo de probar este lote y funciona perfectamente, así que prueba a
quitar
> GO de tu SQL y ya me contarás...
> Saludos,
>
> Lluís Franco i Montanyés
> [MS-MVP-MCP Visual Basic]
>
> FIMARGE, S.A.
> Principat d'Andorra
>
> Tel.: +376 805 100
> Fax: +376 824 500
> Mi Perfil MVP en: http://tinyurl.com/4nbnb
>
> This posting is provided "AS IS" with no warranties, and confers no
rights.
> Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
> derecho
>
> (Guía de netiquette del foro)
> http://www.uyssoft.com/Netiquette/
>
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida