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

#1 SoftJaén
11/08/2004 - 12:13 | Informe spam
"Carlos A. Díaz" escribió:

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

Pero cuando paso esta cadena, me da error, intente con
sp_executesql y tampoco, ...




Hola, Carlos:

No estoy yo muy puesto en T-SQL, pero como tampoco has indicado el error que
obtienes, me da a mí que pensar que las palabras claves USE y GO, no se
pueden utilizar para ejecutar una consulta mediante el método «Execute» del
objeto «Connection», ya que creo que son palabras reservadas del «Analizador
de consultas», pograma cliente que se acompaña con la licencia de Microsoft
SQL Server 2000.

Prueba a quitar dichas palabras, porque para utilizar la base de datos
«GestCor», solo basta que especifiques dicha base en el parámetro «Initial
Catalog» de la cadena de conexión del objeto «Connection». Aparte, deberás
de delimitar bien las líneas de la consulta para que se adapten a una cadena
alfanumérica de Visual Basic.

Te dejo un ejemplo que he adaptado de los Libros en Pantalla, para que
observes cómo se escribiría la consulta para crear, en este caso, una nueva
base de datos:

cnn.Execute "CREATE DATABASE Sales " & _
"ON " & _
"( NAME = Sales_dat," & _
"FILENAME = 'C:\Archivos de programa\...\saledat.mdf'," & _
"SIZE = 10," & _
"MAXSIZE = 50," & _
"FILEGROWTH = 5 )" & _
"LOG ON" & _
"( NAME = 'Sales_log'," & _
"FILENAME = 'D:\Archivos de programa\...\salelog.ldf'," & _
"SIZE = 5MB," & _
"MAXSIZE = 25MB," & _
"FILEGROWTH = 5MB )", , adCmdText

NOTA: En los parámetros «FILENAME» deberás de escribir la ruta completa
donde desees crear la base de datos.

En fin, no sé si será la solución a tu problema, pero menos da una piedra.
:-)

Un saludo

Enrique Martínez
[MS MVP - VB]
http://mvp-access.com/softjaen/

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 Lluís Franco
11/08/2004 - 12:41 | Informe spam
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/
Respuesta Responder a este mensaje
#3 SoftJaén
11/08/2004 - 13:03 | Informe spam
"Lluís Franco" escribió:

El comando GO no es propio de T-SQL y solo es
reconocido por el cliente sql.



Entonces sólo está prohibída la palabra «GO»

Por cierto, Lluís:

¿Dónde jugará Etoo la próxima temporada? ¿Y Michael Owen?
http://www.marca.es/edicion/noticia...01,00.html



Enrique Martínez
[MS MVP - VB]
http://mvp-access.com/softjaen/

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#4 Lluís Franco
11/08/2004 - 13:18 | Informe spam
¿Dónde jugará Etoo la próxima temporada? ¿Y Michael Owen?
http://www.marca.es/edicion/noticia...01,00.html



Bue... lo de Florentino con el pobre Etoo no tiene nombre, pobre chavál...
¡que juegue dónde quiera! Si sólo falta que le encadenen los tobillos y le
pongan una argola al cuello, ¡cachis!
Y lo de Owen... con un par! si señor! 30 kilotes por un tio que (como Raul)
ya está en declive... ¡mú bien!

* Opiniones personales del autor *
* No se pretende ofender a nadie *
* Aparte de los Sres. Martínez y Vigón *
:-DDD


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/
Respuesta Responder a este mensaje
#5 Carlos Sacristan
11/08/2004 - 13:21 | Informe spam
Lluís, Lluís... no te metas en esos temas que puedes salir "escaldado"
;-)

Como salga bien lo de Owen, nos quedamos con este, mandamos a Eto'o pa'l
Liverpool y os quedáis con un palmo de narices :-P

Además, eso de "jugar donde quiera"... coñe, que no hubiera firmao un
contrato así. Que se atenga a las consecuencias ahora!! Pobrecitos
jurgolistas, que sólo cobran 500 kilos (de los antiguos) al año y se sienten
esclavizaos porque no pueden cobrar el doble en otro club...

** opiniones también mú personales mías **
** por supuesto, sin ninguna mala intención **
** excepto la de meter el dedo en el ojo a los culés ;- **

PD: buen rollito eh?, que en esto del jurgol los ánimos se caldean
enseguida :-D

Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Lluís Franco" escribió en el mensaje
news:eIEy#
> ¿Dónde jugará Etoo la próxima temporada? ¿Y Michael Owen?
> http://www.marca.es/edicion/noticia...01,00.html

Bue... lo de Florentino con el pobre Etoo no tiene nombre, pobre chavál...
¡que juegue dónde quiera! Si sólo falta que le encadenen los tobillos y le
pongan una argola al cuello, ¡cachis!
Y lo de Owen... con un par! si señor! 30 kilotes por un tio que (como


Raul)
ya está en declive... ¡mú bien!

* Opiniones personales del autor *
* No se pretende ofender a nadie *
* Aparte de los Sres. Martínez y Vigón *
:-DDD


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/




Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida