Creo q existe una manera mejor..

26/05/2006 - 20:01 por Karlos Traveceras | Informe spam
Mis estimados:

trabajo con tablas q tienen llave,
cuando quiero dar de alta un registro nuevo..

primero valido q no exista .. pero lo hago de una manera q creo q es un poco
inadecuada..

creo un ciclo for next y dentro del ciclo voy checando linea por linea de la
tabla.
si encuentra un campo igual manda un msg de error. de lo contrario continua
con la actualizacion de la tabla.

pero me imagino q existe una manera mejor y mas rapida de saber dentro de
una tabla si existe un registro sin hacer un barrido de la tabla completa.

si alguien me pude dar pistas se los agradeceria mucho..

Saludos..

Karlos Traveceras

Preguntas similare

Leer las respuestas

#1 Jhonny Vargas P. [MVP]
26/05/2006 - 21:06 | Informe spam
Primero que nada que Motor de Base de datos estás utilizando.

La mayoría de las bases de datos manejan SQL que es un standar para ejecutar
sentencias a las tablas..

Suponiendo que tienes la tabla: ALUMNO con los campos Codigo y Nombre.

Para Seleccionar TODOS los datos puedes hacer un:
SELECT CODIGO, NOMBRE
FROM ALUMNO

Para Seleccionar solo un ALUMNO puedes hacer un:
SELECT CODIGO, NOMBRE
FROM ALUMNO
WHERE CODIGO = 123

Para insertar un alumno:
INSERT INTO ALUMNO (CODIGO, NOMBRE) VALUES (1234, 'nombre del alumno')

Para actualizar un alumno:
UPDATE FROM ALUMNO
SET NOMBRE = 'modificando el nombre'
WHERE CODIGO = 1234

Para eliminar un alumno
DELETE FROM ALUMNO
WHERE CODIGO = 1234


Saludos,
Jhonny Vargas P.
Santiago de Chile

"Karlos Traveceras" escribió en
el mensaje news:
Mis estimados:

trabajo con tablas q tienen llave,
cuando quiero dar de alta un registro nuevo..

primero valido q no exista .. pero lo hago de una manera q creo q es un
poco
inadecuada..

creo un ciclo for next y dentro del ciclo voy checando linea por linea de
la
tabla.
si encuentra un campo igual manda un msg de error. de lo contrario
continua
con la actualizacion de la tabla.

pero me imagino q existe una manera mejor y mas rapida de saber dentro de
una tabla si existe un registro sin hacer un barrido de la tabla completa.

si alguien me pude dar pistas se los agradeceria mucho..

Saludos..

Karlos Traveceras
Respuesta Responder a este mensaje
#2 Karlos Traveceras
26/05/2006 - 22:15 | Informe spam
Muchas Gracias ..

Pero vamos desmenuzando este enrrollo..

no explique bien lo q necesito hacer.

trabajo con sql server
los comandos q mencionaste, los tengo bien entendidos.

ok.. hago una consulta con select, pero como se.. o como puedo darme cuenta
si el select me devuelve verdadaero. o falso.. asi yo entenderia q existe o
no . un campo igaul..

Espero haberme explicado.
Saludos


"Jhonny Vargas P. [MVP]" wrote:

Primero que nada que Motor de Base de datos estás utilizando.

La mayoría de las bases de datos manejan SQL que es un standar para ejecutar
sentencias a las tablas..

Suponiendo que tienes la tabla: ALUMNO con los campos Codigo y Nombre.

Para Seleccionar TODOS los datos puedes hacer un:
SELECT CODIGO, NOMBRE
FROM ALUMNO

Para Seleccionar solo un ALUMNO puedes hacer un:
SELECT CODIGO, NOMBRE
FROM ALUMNO
WHERE CODIGO = 123

Para insertar un alumno:
INSERT INTO ALUMNO (CODIGO, NOMBRE) VALUES (1234, 'nombre del alumno')

Para actualizar un alumno:
UPDATE FROM ALUMNO
SET NOMBRE = 'modificando el nombre'
WHERE CODIGO = 1234

Para eliminar un alumno
DELETE FROM ALUMNO
WHERE CODIGO = 1234


Saludos,
Jhonny Vargas P.
Santiago de Chile

"Karlos Traveceras" escribió en
el mensaje news:
> Mis estimados:
>
> trabajo con tablas q tienen llave,
> cuando quiero dar de alta un registro nuevo..
>
> primero valido q no exista .. pero lo hago de una manera q creo q es un
> poco
> inadecuada..
>
> creo un ciclo for next y dentro del ciclo voy checando linea por linea de
> la
> tabla.
> si encuentra un campo igual manda un msg de error. de lo contrario
> continua
> con la actualizacion de la tabla.
>
> pero me imagino q existe una manera mejor y mas rapida de saber dentro de
> una tabla si existe un registro sin hacer un barrido de la tabla completa.
>
> si alguien me pude dar pistas se los agradeceria mucho..
>
> Saludos..
>
> Karlos Traveceras



Respuesta Responder a este mensaje
#3 Jhonny Vargas P. [MVP]
26/05/2006 - 22:33 | Informe spam
Hola Karlos,

OK... para variar tienes varias alternativas.. como sé que estás trabajando
con SQL Server, puedes crear un procedimiento almacenado que envíes la
información y que este revise si existe o no el registro. O simplemente como
lo estás pidiendo un SELECT a la base de datos.

ConString = "string de coneccion a la base de datos."
SQL = "consulta a la base de datos"

'Instanciamos un Objeto connection para la conección,
'un objeto command, para decir cual es nuestra consulta,
'tambien puede ser un procedimiento almacenado. Un objeto
'Dataset para recibir los dato y un DataAdapter quien llama al objeto
command
'y vacía la información al DataSet.
Dim objConnection As New SqlClient.SqlConnection(ConString), _
objCommand As New SqlClient.SqlCommand, _
objDataSet As New DataSet, _
myDataAdapter As SqlClient.SqlDataAdapter

myDataAdapter = New SqlClient.SqlDataAdapter(SQL, objConnection)
myDataAdapter.SelectCommand.CommandTimeout = TimeOut
myDataAdapter.SelectCommand.CommandType = CommandType.Text
myDataAdapter.Fill(objDataSet, "Alumno")

objConnection.Close()

If objDataSet.Tables(0).Rows.Count > 0 Then
Msgbox "Existe el registro"
Else
Msgbox "No existe el registro"
End If

Esta es solo una forma de traer datos, puedes crear un DataReader para
devolver información...


Saludos,
Jhonny Vargas P.
Santiago de Chile


"Karlos Traveceras" escribió en
el mensaje news:
Muchas Gracias ..

Pero vamos desmenuzando este enrrollo..

no explique bien lo q necesito hacer.

trabajo con sql server
los comandos q mencionaste, los tengo bien entendidos.

ok.. hago una consulta con select, pero como se.. o como puedo darme
cuenta
si el select me devuelve verdadaero. o falso.. asi yo entenderia q existe
o
no . un campo igaul..

Espero haberme explicado.
Saludos


"Jhonny Vargas P. [MVP]" wrote:

Primero que nada que Motor de Base de datos estás utilizando.

La mayoría de las bases de datos manejan SQL que es un standar para
ejecutar
sentencias a las tablas..

Suponiendo que tienes la tabla: ALUMNO con los campos Codigo y Nombre.

Para Seleccionar TODOS los datos puedes hacer un:
SELECT CODIGO, NOMBRE
FROM ALUMNO

Para Seleccionar solo un ALUMNO puedes hacer un:
SELECT CODIGO, NOMBRE
FROM ALUMNO
WHERE CODIGO = 123

Para insertar un alumno:
INSERT INTO ALUMNO (CODIGO, NOMBRE) VALUES (1234, 'nombre del alumno')

Para actualizar un alumno:
UPDATE FROM ALUMNO
SET NOMBRE = 'modificando el nombre'
WHERE CODIGO = 1234

Para eliminar un alumno
DELETE FROM ALUMNO
WHERE CODIGO = 1234


Saludos,
Jhonny Vargas P.
Santiago de Chile

"Karlos Traveceras" escribió
en
el mensaje news:
> Mis estimados:
>
> trabajo con tablas q tienen llave,
> cuando quiero dar de alta un registro nuevo..
>
> primero valido q no exista .. pero lo hago de una manera q creo q es un
> poco
> inadecuada..
>
> creo un ciclo for next y dentro del ciclo voy checando linea por linea
> de
> la
> tabla.
> si encuentra un campo igual manda un msg de error. de lo contrario
> continua
> con la actualizacion de la tabla.
>
> pero me imagino q existe una manera mejor y mas rapida de saber dentro
> de
> una tabla si existe un registro sin hacer un barrido de la tabla
> completa.
>
> si alguien me pude dar pistas se los agradeceria mucho..
>
> Saludos..
>
> Karlos Traveceras



Respuesta Responder a este mensaje
#4 Karlos Traveceras
27/05/2006 - 00:59 | Informe spam
En algo asi habia pensado..

pero no existira algo como un find.. o un foun.. o un seek..o un locate.

de cualquier forma seguire tu consejo.. gracias..


"Jhonny Vargas P. [MVP]" wrote:

Hola Karlos,

OK... para variar tienes varias alternativas.. como sé que estás trabajando
con SQL Server, puedes crear un procedimiento almacenado que envíes la
información y que este revise si existe o no el registro. O simplemente como
lo estás pidiendo un SELECT a la base de datos.

ConString = "string de coneccion a la base de datos."
SQL = "consulta a la base de datos"

'Instanciamos un Objeto connection para la conección,
'un objeto command, para decir cual es nuestra consulta,
'tambien puede ser un procedimiento almacenado. Un objeto
'Dataset para recibir los dato y un DataAdapter quien llama al objeto
command
'y vacía la información al DataSet.
Dim objConnection As New SqlClient.SqlConnection(ConString), _
objCommand As New SqlClient.SqlCommand, _
objDataSet As New DataSet, _
myDataAdapter As SqlClient.SqlDataAdapter

myDataAdapter = New SqlClient.SqlDataAdapter(SQL, objConnection)
myDataAdapter.SelectCommand.CommandTimeout = TimeOut
myDataAdapter.SelectCommand.CommandType = CommandType.Text
myDataAdapter.Fill(objDataSet, "Alumno")

objConnection.Close()

If objDataSet.Tables(0).Rows.Count > 0 Then
Msgbox "Existe el registro"
Else
Msgbox "No existe el registro"
End If

Esta es solo una forma de traer datos, puedes crear un DataReader para
devolver información...


Saludos,
Jhonny Vargas P.
Santiago de Chile


"Karlos Traveceras" escribió en
el mensaje news:
> Muchas Gracias ..
>
> Pero vamos desmenuzando este enrrollo..
>
> no explique bien lo q necesito hacer.
>
> trabajo con sql server
> los comandos q mencionaste, los tengo bien entendidos.
>
> ok.. hago una consulta con select, pero como se.. o como puedo darme
> cuenta
> si el select me devuelve verdadaero. o falso.. asi yo entenderia q existe
> o
> no . un campo igaul..
>
> Espero haberme explicado.
> Saludos
>
>
> "Jhonny Vargas P. [MVP]" wrote:
>
>> Primero que nada que Motor de Base de datos estás utilizando.
>>
>> La mayoría de las bases de datos manejan SQL que es un standar para
>> ejecutar
>> sentencias a las tablas..
>>
>> Suponiendo que tienes la tabla: ALUMNO con los campos Codigo y Nombre.
>>
>> Para Seleccionar TODOS los datos puedes hacer un:
>> SELECT CODIGO, NOMBRE
>> FROM ALUMNO
>>
>> Para Seleccionar solo un ALUMNO puedes hacer un:
>> SELECT CODIGO, NOMBRE
>> FROM ALUMNO
>> WHERE CODIGO = 123
>>
>> Para insertar un alumno:
>> INSERT INTO ALUMNO (CODIGO, NOMBRE) VALUES (1234, 'nombre del alumno')
>>
>> Para actualizar un alumno:
>> UPDATE FROM ALUMNO
>> SET NOMBRE = 'modificando el nombre'
>> WHERE CODIGO = 1234
>>
>> Para eliminar un alumno
>> DELETE FROM ALUMNO
>> WHERE CODIGO = 1234
>>
>>
>> Saludos,
>> Jhonny Vargas P.
>> Santiago de Chile
>>
>> "Karlos Traveceras" escribió
>> en
>> el mensaje news:
>> > Mis estimados:
>> >
>> > trabajo con tablas q tienen llave,
>> > cuando quiero dar de alta un registro nuevo..
>> >
>> > primero valido q no exista .. pero lo hago de una manera q creo q es un
>> > poco
>> > inadecuada..
>> >
>> > creo un ciclo for next y dentro del ciclo voy checando linea por linea
>> > de
>> > la
>> > tabla.
>> > si encuentra un campo igual manda un msg de error. de lo contrario
>> > continua
>> > con la actualizacion de la tabla.
>> >
>> > pero me imagino q existe una manera mejor y mas rapida de saber dentro
>> > de
>> > una tabla si existe un registro sin hacer un barrido de la tabla
>> > completa.
>> >
>> > si alguien me pude dar pistas se los agradeceria mucho..
>> >
>> > Saludos..
>> >
>> > Karlos Traveceras
>>
>>
>>



Respuesta Responder a este mensaje
#5 Eduardo A. Morcillo [MS MVP VB]
27/05/2006 - 05:48 | Informe spam
Para solo saber si existe un registro o no eso de estar llenado un dataset
me parece demasiado.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
https://mvp.support.microsoft.com/p...4EF5A4191C
http://spaces.msn.com/members/emorcillo/
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida