En este grupo En todos

Grupo de .NET y C



- una pregunta sobre sql y .net

Nelson
Sistemas instituto tecnologico metropo...
Escrito por Nelson Giraldo
el 16/10/2008
Hola, miren les comento los siguiente: estoy haciendo una aplicacion web en asp. Net y sql server que trata sobre una aseguradora, en esta uno ingresa los clientes, el vehiculo etc... Y en el formulario para ingresar el vehiculo estan los campos Placa, Color, Marca, etc, y tambien el número de cédula del cliente o propietario del vehiculo para relacionar el vehiculo con el propietario; lo que les pregunto es si se puede hacer que al ingresar el vehiculo no necesite ingresar la cedula del propietario y que éste en la base de datos o en el mismo asp. Net se ingrese automaticamente. no se si me entienden, gracias.
Ines Zapotitla Iletl
Licenciatura en informáica instituto t...
Escrito por Ines Zapotitla Iletl
el 17/10/2008

No no te entendi, la cedula se puede generar como la curp, si es asi solo crea un algoritmo para generarlo automaticamente y si no te podrias explucar mejor

Nelson Giraldo
Sistemas instituto tecnologico metropo...
Escrito por Nelson Giraldo
el 17/10/2008

Lo que quiero hacer es por ejemplo desde sql server, digamos que tengo dos tablas la de propietario y la de vehiculos, ingreso los datos del cliente normalmente, y para ingresar los datos del vehiculo tengo que ingresar el id del propietario porque estan relacionadas estas dos tablas, mi pregunta es si con una funcion o procedimiento en sql me ingrese automaticamente ese id del propietario y no nesecite ingresarlo desde un formulario o alqo asi.

Willisney Garcia Santos Garcia Santos
Tecnologo en sistemas de información i...
Escrito por Willisney Garcia Santos Garcia Santos
el 17/10/2008

Hola, Si lo que necesitas es que mediante la placa del vehiculo puedas obtener el número de identiifcación de su propietario, te tengo la solución. No hace mucho hice algo muy similar;
te voy a dar un ejemplo bajo el supuesto que manaejas dos tablas una de vehiculos y otra de Propietarios. La tabla Propietarios se encuentra relacionada con la de Vehiculos por medio del campo placa entonces Asi seria la consulta:

Select
Propietarios . Cedula From Propietarios , Vehiculos Where Vehiculos . Placa = Propietarios . Placa And Vehiculos . Placa = @dato

Donde @dato es la placa que le has enviado desde la aplicación a la base de datos

Emilio Jose Salazar
Programacion cft simon bolivar
Escrito por Emilio Jose Salazar
el 17/10/2008

La respuesta esta solo en la consulta sql que hagas, ahora si quieres puedes hacer esta consulta e incluir un inner join en ves de que hacer la comparacion en el where, quedaria algo asi:

SELECT "CAMPOS QUE QUIERAS TRAER" FROM "TABLA1" INNER JOIN "TABLA2" ON "TABLA1. CAMPOCOPARACION1" = "TABLA2. CAMPOCOMPARACION" WHERE "TABLA. CAMPO" = "PARAMETRO"


SALUDOS :D

Nelson Giraldo
Sistemas instituto tecnologico metropo...
Escrito por Nelson Giraldo
el 17/10/2008

Lo que tenia pensado era que en la aplicacion uno ingresa el propietario y al darle en el boton aceptar este me redireccione al formulario de vehiculos y me muestre la cedula del propietario en este formulario; bueno olvidemos esto.


Otra pregunta: desde donde es mejor controlar las restricciones al ingresar campos, desde la base de datos o desde la aplicacion. Por ejemplo que un campo solo puedan ingresar letras o un numero hasta determinado rango, etc.

Willisney García Santos
Tecnologìa en sistemas de informaación...
Escrito por Willisney García Santos
el 18/10/2008

Pues lo más practico es realizar ese tipo de validaciones desde la misma aplicación para evitar idas a la base de datos. Aprovecha los controles de validación der ASP. NET también las expresiones regulares

Nelson Giraldo
Sistemas instituto tecnologico metropo...
Escrito por Nelson Giraldo
el 18/10/2008

Ok. Gracias.

Fernando Moreno
Ingenieria de sistemas universidad mar...
Escrito por Fernando Moreno
el 06/11/2008

Para realizar este tipo de validaciones es mejor manejarlo desde la aplicacion porque efectivamente mejoras el desempeño o rendimiento con menos llamadas a consultas SQL. Por cierto siempre es mas optimo utilizar procedimientos almacenados que cadenas de consultas SQL.

Por otra parte existen dos formas de hacer este tipo de validaciones desde el lado del cliente y desde el lado de servidor. Si quieres realzar algun tipo de restriccion en algun campo te recomiendo utilizar funciones de javaScript pero los controles de validacion de ASP. Net tambien son muy buenos.
Otra recomendacon es que existen controles de Ajax que extienden el comportamiento de algunos tipos de controles y realizan este tipo de validaciones con una interfaz grafica mas rica que la utilizada por los validadores de ASP. Net

Nelson Giraldo
Sistemas instituto tecnologico metropo...
Escrito por Nelson Giraldo
el 06/11/2008

Una pregunta:

En que casos se utilizan los procedimientos almacenados?

Roger Gomez Jaramillo
Tecnologia en sistemas de informacion ...
Escrito por Roger Gomez Jaramillo
el 06/11/2008
Los procedimientos almacenados se deben usar siempre, son mucho mas rapidos que escribir el codigo sql normal, ya estan precompilados, por lo cual este y otros procesos no los debe volver a realizar el motor de base de datos, permiten asignarselos a roles o usuarios especificos por lo cual facilitan el manejo de la seguridad, evitan la inyeccion de codigo sql, y en general mejoran el rendimiento de la aplicacion.
Oscar Zumaran Maceda
Ing. de sistemas universidad privada d...
Escrito por Oscar Zumaran Maceda
el 24/11/2008

Ahm... No ncesariamente ya ke si usas un SP estarias seteando por un valor fijo y no predeterminado, veras... En MS SQL y en la mayoria de gestores de BD tienen una propiedad "Valor predeterminado" en el nuevo campo ke estas crenado en modo diseño o en todo caso por sentencia T-sql... O tmb puedes hacerlo en el mismo ASP. Net, (yo lo haria) y lo haria asi:
dim name as string
name=IIf(txtnombre. Text is null,'nombre 1', txtnombre. Text) para saber si el txtnombre es nulo.. Le asigno un valro predeterminado(nombre 1) o si tiene algun valor... Lo ke haya en el mismo txtnombre!

Roger Gomez Jaramillo
Tecnologia en sistemas de informacion ...
Escrito por Roger Gomez Jaramillo
el 25/11/2008

No entiendo tu idea,pero en realidad no hay motivo para no utilizar SP en lugar de mandar la cadena de consulta por las razones que dije anteriormente, en sql hay muchas funciones que podemos usar que pueden suplir las necesidades de expresiones en el codigo, no se en que casos dices que no se debe

Escrito por Luc13_00
el 11/12/2008

En realidad, el utilizar procedimientos almacenados ó cadenas sql son criterios propios del desarrollador y las características del desarrollo, puesto que si se quiere tener una aplicación que sea muy independiente de la base de datos, gestione su propia persistencia y manejar ORM es mejor no utilizar procedimientos almacenados porque están totalmente atados al lenguaje, esto indica que no se puede tener portabilidad de la base de datos y solo se puede trabajar con un motor, si por el contrario, se utilizan T-Sql y un mapeador, la aplicación podría funcionar en cualquier motor de base de datos, esta es una aplicación muy grande por la que en algunos casos no se deberían manejar SP.

Por el contrario, si la aplicación no requiere una alta portabilidad sino que tiene procesos pesados en bash, indudablemente son mejores los SP por velocidad y por seguridad.

Respondiendo la primera pregunta de la cédula del propietario del vehículo, lo mejor es declarar una variable estática con este valor y usarlo en cualquiermomento de la aplicación.

Ivan Cajas
Ing. sistemas unita
Escrito por Ivan Cajas
el 16/12/2008

Personalmente te digo, que lo que es datos en la base y la programación al lenguaje, es mucho mas práctico y mejor separar cada uno de ellos, imagina que si tienes todo un select en la página, el momento de modificarlos se te hara mas tedioso y no muy práctico que por ejemplo modificar un Sp, los cuales estan precompilados y son mas rápidos a nivel de consulta.

Otro Ejemplo seria que si necesitas hacer la misma consulta en varias páginas te toca copiar la linea del select en cada una de Ellas , lo que seria mejor crear una clase donde se llaman a todos nuestros Sps por medio de métodos, y sencillamente con un objeto hacer las respectivas llamadas.

Personalmente al inicio cuando colocaba el select en la página, esta demoraba mucho mas en cargar, Luego cuando comence a trabajar con Sp, la carga de la página y la consulta del Sp se realizan de una forma mucho mas rápida.

Nelson Giraldo
Sistemas instituto tecnologico metropo...
Escrito por Nelson Giraldo
el 16/12/2008

Muchas gracias a todos por sus respuestas.