Problema al abrir tabla

07/03/2006 - 19:40 por Luis M | Informe spam
Amigos,

Utilizando ADO estoy ingresando registros en una BD SQL, donde hay una tabla
con muchos registros que me demora un poco la conexión y por eso, coloqué la
propiedad cn.connectiontimeout en 0 (cero) y se conecta sin problemas pero
luego al tratar de abrir la tabla con la siguiente instrucción me reporta
que se agotó el tiempO de espera:

rs.Open "TABLA", cn, adOpenKeyset, adLockOptimistic, adCmdTable

Le agregué la opció de reintentar si el estado del recordset es cerrado
pero, aún así, no logra abrir dicha tabla.

Por favor su ayuda.

Gracias,

Luis Medina

Preguntas similare

Leer las respuestas

#6 LuisM
08/03/2006 - 03:22 | Informe spam
Maxi, gracias, pues realmente no utilizo registros existentes en la tablas,
solo adiciono a través de un recorset.

Me interesa utilizar Stored Procedures pero no tengo mucho dominio en el
tema para ejecutarlo por ejemplo desde Visual Basic.

Gracias

Luis

"Maxi [Mvp]" escribió en el mensaje
news:
Hola, estas pasando 1M de registros? pues te diria que revises muy bien


esa
aplicacion, no es para nada recomendado hacer esto. Para que pasar de un
lado a otro todo si luego quizas usamos poco? solo pasa lo que necesitas.

Para todo lo que es CRUD (Create Read Update Delete) te recomiendo Stores
procedures.


Saludos

-
Buenos Aires - Argentina
[Microsoft MVP SQL SERVER]
www.sqlgurus.org
"Luis M" <luism0(arroba)yahoo.es> wrote in message
news:
> Gracias Isaias, pues esta tabla debe tener aproximadamente 1 millón de
> registros.
>
> Cuál opción me sugieres para subir registros nuevos? he pensado que
> utilizando el comando "INSERT INTO" de la conexion.
>
> Gracias
>
> Luis
> "Isaias" escribió en el mensaje
> news:
>> ¿Porque llevar al front el contenido TOTAL de los registros de una
>> tabla?,¿De
>> cuantos registros estamos hablando?
>> Saludos
>> IIslas
>>
>>
>> "Luis M" escribió:
>>
>>> Amigos,
>>>
>>> Utilizando ADO estoy ingresando registros en una BD SQL, donde hay una
>>> tabla
>>> con muchos registros que me demora un poco la conexión y por eso,
>>> coloqué la
>>> propiedad cn.connectiontimeout en 0 (cero) y se conecta sin problemas
>>> pero
>>> luego al tratar de abrir la tabla con la siguiente instrucción me
>>> reporta
>>> que se agotó el tiempO de espera:
>>>
>>> rs.Open "TABLA", cn, adOpenKeyset, adLockOptimistic, adCmdTable
>>>
>>> Le agregué la opció de reintentar si el estado del recordset es


cerrado
>>> pero, aún así, no logra abrir dicha tabla.
>>>
>>> Por favor su ayuda.
>>>
>>> Gracias,
>>>
>>> Luis Medina
>>>
>>>
>>>
>
>


Respuesta Responder a este mensaje
#7 Raul Guerrero
08/03/2006 - 03:57 | Informe spam
Lo ideal siempre sera utilizar Procedimientos Almacenados
1.- Por Seguridad
2.- Por Velocidad

Por lo cual me uno a la respuesta de Maxi, sobre todo si tienes un millon de
registros.

Pero ciertamente tienes que aprender un conjunto de habilidades adicionales.


"Maxi [Mvp]" wrote:

Hola, estas pasando 1M de registros? pues te diria que revises muy bien esa
aplicacion, no es para nada recomendado hacer esto. Para que pasar de un
lado a otro todo si luego quizas usamos poco? solo pasa lo que necesitas.

Para todo lo que es CRUD (Create Read Update Delete) te recomiendo Stores
procedures.


Saludos

-
Buenos Aires - Argentina
[Microsoft MVP SQL SERVER]
www.sqlgurus.org
"Luis M" <luism0(arroba)yahoo.es> wrote in message
news:
> Gracias Isaias, pues esta tabla debe tener aproximadamente 1 millón de
> registros.
>
> Cuál opción me sugieres para subir registros nuevos? he pensado que
> utilizando el comando "INSERT INTO" de la conexion.
>
> Gracias
>
> Luis
> "Isaias" escribió en el mensaje
> news:
>> ¿Porque llevar al front el contenido TOTAL de los registros de una
>> tabla?,¿De
>> cuantos registros estamos hablando?
>> Saludos
>> IIslas
>>
>>
>> "Luis M" escribió:
>>
>>> Amigos,
>>>
>>> Utilizando ADO estoy ingresando registros en una BD SQL, donde hay una
>>> tabla
>>> con muchos registros que me demora un poco la conexión y por eso,
>>> coloqué la
>>> propiedad cn.connectiontimeout en 0 (cero) y se conecta sin problemas
>>> pero
>>> luego al tratar de abrir la tabla con la siguiente instrucción me
>>> reporta
>>> que se agotó el tiempO de espera:
>>>
>>> rs.Open "TABLA", cn, adOpenKeyset, adLockOptimistic, adCmdTable
>>>
>>> Le agregué la opció de reintentar si el estado del recordset es cerrado
>>> pero, aún así, no logra abrir dicha tabla.
>>>
>>> Por favor su ayuda.
>>>
>>> Gracias,
>>>
>>> Luis Medina
>>>
>>>
>>>
>
>



Respuesta Responder a este mensaje
#8 Raul Guerrero
08/03/2006 - 06:10 | Informe spam
Me documente un poco mas y espero mejorar mi respuesta

Set cmdComando as New ADODB.COommand
Set cmdComando.ActiveConection = cn
With cmdComando
.CommandType = adCmdStoredProcedure
.CommandText = "NombreProcedimentoAlmacenado"
.Paraneters,Append.CreateParameter("@Parametro1", adInterger, adParamInput)
.Paraneters,Append.CreateParameter("@Parametro2", adInterger, adParamInput)
'Tantos parametros como te sean necesarios
End With
Set rsRecordset = New ADODB.Recordset
rsRecordset.Open cmdComando

Este procedimiento llenaria tu recordset con la información que te devuelva
el procedimiento almacenado.

Un punto importante es que no necesitas regresar el millon de registros, en
el procedimiento. Mas bien deberias regresar un conjunto de resultados menor
que contenga la información que deseas mostrar.

Saludos
Atentamente,
Raúl Guerrero
http://superneurona.blogspot.com


"Raul Guerrero" wrote:

Lo ideal siempre sera utilizar Procedimientos Almacenados
1.- Por Seguridad
2.- Por Velocidad

Por lo cual me uno a la respuesta de Maxi, sobre todo si tienes un millon de
registros.

Pero ciertamente tienes que aprender un conjunto de habilidades adicionales.


"Maxi [Mvp]" wrote:

> Hola, estas pasando 1M de registros? pues te diria que revises muy bien esa
> aplicacion, no es para nada recomendado hacer esto. Para que pasar de un
> lado a otro todo si luego quizas usamos poco? solo pasa lo que necesitas.
>
> Para todo lo que es CRUD (Create Read Update Delete) te recomiendo Stores
> procedures.
>
>
> Saludos
>
> -
> Buenos Aires - Argentina
> [Microsoft MVP SQL SERVER]
> www.sqlgurus.org
> "Luis M" <luism0(arroba)yahoo.es> wrote in message
> news:
> > Gracias Isaias, pues esta tabla debe tener aproximadamente 1 millón de
> > registros.
> >
> > Cuál opción me sugieres para subir registros nuevos? he pensado que
> > utilizando el comando "INSERT INTO" de la conexion.
> >
> > Gracias
> >
> > Luis
> > "Isaias" escribió en el mensaje
> > news:
> >> ¿Porque llevar al front el contenido TOTAL de los registros de una
> >> tabla?,¿De
> >> cuantos registros estamos hablando?
> >> Saludos
> >> IIslas
> >>
> >>
> >> "Luis M" escribió:
> >>
> >>> Amigos,
> >>>
> >>> Utilizando ADO estoy ingresando registros en una BD SQL, donde hay una
> >>> tabla
> >>> con muchos registros que me demora un poco la conexión y por eso,
> >>> coloqué la
> >>> propiedad cn.connectiontimeout en 0 (cero) y se conecta sin problemas
> >>> pero
> >>> luego al tratar de abrir la tabla con la siguiente instrucción me
> >>> reporta
> >>> que se agotó el tiempO de espera:
> >>>
> >>> rs.Open "TABLA", cn, adOpenKeyset, adLockOptimistic, adCmdTable
> >>>
> >>> Le agregué la opció de reintentar si el estado del recordset es cerrado
> >>> pero, aún así, no logra abrir dicha tabla.
> >>>
> >>> Por favor su ayuda.
> >>>
> >>> Gracias,
> >>>
> >>> Luis Medina
> >>>
> >>>
> >>>
> >
> >
>
>
>
Respuesta Responder a este mensaje
#9 Luis M
08/03/2006 - 13:13 | Informe spam
Raul, gracias por tu ayuda, me das una idea de manejar estos procedimientos.
Necesito entonces también saber cómo los creo o los modifico. Conoces algún
sitio web donde pueda informarme sobre todos estos temas?


Gracias

Luis

"Raul Guerrero" escribió en el
mensaje news:
Me documente un poco mas y espero mejorar mi respuesta

Set cmdComando as New ADODB.COommand
Set cmdComando.ActiveConection = cn
With cmdComando
.CommandType = adCmdStoredProcedure
.CommandText = "NombreProcedimentoAlmacenado"
.Paraneters,Append.CreateParameter("@Parametro1", adInterger,
adParamInput)
.Paraneters,Append.CreateParameter("@Parametro2", adInterger,
adParamInput)
'Tantos parametros como te sean necesarios
End With
Set rsRecordset = New ADODB.Recordset
rsRecordset.Open cmdComando

Este procedimiento llenaria tu recordset con la información que te
devuelva
el procedimiento almacenado.

Un punto importante es que no necesitas regresar el millon de registros,
en
el procedimiento. Mas bien deberias regresar un conjunto de resultados
menor
que contenga la información que deseas mostrar.

Saludos
Atentamente,
Raúl Guerrero
http://superneurona.blogspot.com


"Raul Guerrero" wrote:

Lo ideal siempre sera utilizar Procedimientos Almacenados
1.- Por Seguridad
2.- Por Velocidad

Por lo cual me uno a la respuesta de Maxi, sobre todo si tienes un millon
de
registros.

Pero ciertamente tienes que aprender un conjunto de habilidades
adicionales.


"Maxi [Mvp]" wrote:

> Hola, estas pasando 1M de registros? pues te diria que revises muy bien
> esa
> aplicacion, no es para nada recomendado hacer esto. Para que pasar de
> un
> lado a otro todo si luego quizas usamos poco? solo pasa lo que
> necesitas.
>
> Para todo lo que es CRUD (Create Read Update Delete) te recomiendo
> Stores
> procedures.
>
>
> Saludos
>
> -
> Buenos Aires - Argentina
> [Microsoft MVP SQL SERVER]
> www.sqlgurus.org
> "Luis M" <luism0(arroba)yahoo.es> wrote in message
> news:
> > Gracias Isaias, pues esta tabla debe tener aproximadamente 1 millón
> > de
> > registros.
> >
> > Cuál opción me sugieres para subir registros nuevos? he pensado que
> > utilizando el comando "INSERT INTO" de la conexion.
> >
> > Gracias
> >
> > Luis
> > "Isaias" escribió en el mensaje
> > news:
> >> ¿Porque llevar al front el contenido TOTAL de los registros de una
> >> tabla?,¿De
> >> cuantos registros estamos hablando?
> >> Saludos
> >> IIslas
> >>
> >>
> >> "Luis M" escribió:
> >>
> >>> Amigos,
> >>>
> >>> Utilizando ADO estoy ingresando registros en una BD SQL, donde hay
> >>> una
> >>> tabla
> >>> con muchos registros que me demora un poco la conexión y por eso,
> >>> coloqué la
> >>> propiedad cn.connectiontimeout en 0 (cero) y se conecta sin
> >>> problemas
> >>> pero
> >>> luego al tratar de abrir la tabla con la siguiente instrucción me
> >>> reporta
> >>> que se agotó el tiempO de espera:
> >>>
> >>> rs.Open "TABLA", cn, adOpenKeyset, adLockOptimistic, adCmdTable
> >>>
> >>> Le agregué la opció de reintentar si el estado del recordset es
> >>> cerrado
> >>> pero, aún así, no logra abrir dicha tabla.
> >>>
> >>> Por favor su ayuda.
> >>>
> >>> Gracias,
> >>>
> >>> Luis Medina
> >>>
> >>>
> >>>
> >
> >
>
>
>
Respuesta Responder a este mensaje
#10 Raul Guerrero
08/03/2006 - 16:40 | Informe spam
Estimado Luis,

Escribir un procedimiento almacenado en una base de datos como sql server es
bastante sencillo.

Regularmente tu realizarias una consulta a la base de datos de la siguiente
manera.

SELECT ColumnaA, ColumnaB FROM Tabla1

Esto mismo lo puedes pasar a un procedimiento almacenado comm

CREATE PROCEDURE miProcedimientoAlmacenado
AS

SELECT ColumnaA, ColumnaB FROM Tabla1

GO

Ahora que si lo que quisieras es mandar un parametro para filtrar la
consulta entonces se veria de la siguiente forma:
CREATE PROCEDURE miProcedimientoAlmacenado
@Parametro1 int
AS

SELECT ColumnaA, ColumnaB FROM Tabla1 WHERE ColumnaA = @Parametro1

GO

Si quieres utilizar mas de un parametro entonces se veria asi.

CREATE PROCEDURE miProcedimientoAlmacenado
@Parametro1 int,
@Parametro1 nvarchar(50),
@Parametro1 bit

AS
..
GO

Si quieres saber mas de estos temas puedes buscar stored procedures en los
libros en pantalla de sql server.

O también puedes revisar estas ligas que me sirvieron como Guia para
Responderte.

http://www.4guysfromrolla.com/webte...99-1.shtml
http://databases.about.com/od/sqlse...dprocs.htm

Saludos,
Raúl Guerrero

"Luis M" wrote:

Raul, gracias por tu ayuda, me das una idea de manejar estos procedimientos.
Necesito entonces también saber cómo los creo o los modifico. Conoces algún
sitio web donde pueda informarme sobre todos estos temas?


Gracias

Luis

"Raul Guerrero" escribió en el
mensaje news:
> Me documente un poco mas y espero mejorar mi respuesta
>
> Set cmdComando as New ADODB.COommand
> Set cmdComando.ActiveConection = cn
> With cmdComando
> .CommandType = adCmdStoredProcedure
> .CommandText = "NombreProcedimentoAlmacenado"
> .Paraneters,Append.CreateParameter("@Parametro1", adInterger,
> adParamInput)
> .Paraneters,Append.CreateParameter("@Parametro2", adInterger,
> adParamInput)
> 'Tantos parametros como te sean necesarios
> End With
> Set rsRecordset = New ADODB.Recordset
> rsRecordset.Open cmdComando
>
> Este procedimiento llenaria tu recordset con la información que te
> devuelva
> el procedimiento almacenado.
>
> Un punto importante es que no necesitas regresar el millon de registros,
> en
> el procedimiento. Mas bien deberias regresar un conjunto de resultados
> menor
> que contenga la información que deseas mostrar.
>
> Saludos
> Atentamente,
> Raúl Guerrero
> http://superneurona.blogspot.com
>
>
> "Raul Guerrero" wrote:
>
>> Lo ideal siempre sera utilizar Procedimientos Almacenados
>> 1.- Por Seguridad
>> 2.- Por Velocidad
>>
>> Por lo cual me uno a la respuesta de Maxi, sobre todo si tienes un millon
>> de
>> registros.
>>
>> Pero ciertamente tienes que aprender un conjunto de habilidades
>> adicionales.
>>
>>
>> "Maxi [Mvp]" wrote:
>>
>> > Hola, estas pasando 1M de registros? pues te diria que revises muy bien
>> > esa
>> > aplicacion, no es para nada recomendado hacer esto. Para que pasar de
>> > un
>> > lado a otro todo si luego quizas usamos poco? solo pasa lo que
>> > necesitas.
>> >
>> > Para todo lo que es CRUD (Create Read Update Delete) te recomiendo
>> > Stores
>> > procedures.
>> >
>> >
>> > Saludos
>> >
>> > -
>> > Buenos Aires - Argentina
>> > [Microsoft MVP SQL SERVER]
>> > www.sqlgurus.org
>> > "Luis M" <luism0(arroba)yahoo.es> wrote in message
>> > news:
>> > > Gracias Isaias, pues esta tabla debe tener aproximadamente 1 millón
>> > > de
>> > > registros.
>> > >
>> > > Cuál opción me sugieres para subir registros nuevos? he pensado que
>> > > utilizando el comando "INSERT INTO" de la conexion.
>> > >
>> > > Gracias
>> > >
>> > > Luis
>> > > "Isaias" escribió en el mensaje
>> > > news:
>> > >> ¿Porque llevar al front el contenido TOTAL de los registros de una
>> > >> tabla?,¿De
>> > >> cuantos registros estamos hablando?
>> > >> Saludos
>> > >> IIslas
>> > >>
>> > >>
>> > >> "Luis M" escribió:
>> > >>
>> > >>> Amigos,
>> > >>>
>> > >>> Utilizando ADO estoy ingresando registros en una BD SQL, donde hay
>> > >>> una
>> > >>> tabla
>> > >>> con muchos registros que me demora un poco la conexión y por eso,
>> > >>> coloqué la
>> > >>> propiedad cn.connectiontimeout en 0 (cero) y se conecta sin
>> > >>> problemas
>> > >>> pero
>> > >>> luego al tratar de abrir la tabla con la siguiente instrucción me
>> > >>> reporta
>> > >>> que se agotó el tiempO de espera:
>> > >>>
>> > >>> rs.Open "TABLA", cn, adOpenKeyset, adLockOptimistic, adCmdTable
>> > >>>
>> > >>> Le agregué la opció de reintentar si el estado del recordset es
>> > >>> cerrado
>> > >>> pero, aún así, no logra abrir dicha tabla.
>> > >>>
>> > >>> Por favor su ayuda.
>> > >>>
>> > >>> Gracias,
>> > >>>
>> > >>> Luis Medina
>> > >>>
>> > >>>
>> > >>>
>> > >
>> > >
>> >
>> >
>> >



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