Quisiera saber si existe alguna manera de trabajar las sentencias SQL en
Vb .Net y que sean fácilmente, o al menos un poco, enviarlas de nuevo al
diseñador de SQL, puesto que tengo una consulta de quince líneas y
cuando armo la cadena en vb .net y necesito hacerle algún cambio, cuesta
mucho "rearmar" nuevamente la cadena en VB.
Alguna idea??
gracias por su tiempo
La concatenación de cadenas alfanuméricas en varias líneas de código fuente,
siempre ha sido un trabajo tedioso, sobre todo si posteriormente su sintaxis
hay que exportarla a otros entornos, como puede ser el caso del
Administrador de SQL Server.
Pero como dices que se trata de efectuar sólo consultas combinadas de ventas
ya realizadas, por tanto, consultas de sólo lectura, pienso que lo mejor que
puedes hacer es crearte un procedimiento almacenado en la propia base de
datos de SQL Server, que acepte una serie de parámetros de entrada, y que
sea tu programa de Visual Basic el que obtenga un objeto DataTable o
DataReader como resultado de ejecutar dicho procedimiento almacenado. Creo
que es lo más efectivo que se puede hacer.
--
Enrique Martínez
[MS MVP - VB]
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.
Sugerencia: Usa un archivo de recursos. A�ade a tu proyecto un archivo
.resx, y dentro del resx a�ades un recurso de tipo string con el nombre que
quieras. En el valor del recurso, copias y pegas todo el texto de la
sentencia desde el dise�ador de SQL; no hay problema aunque mida cientos de
l�neas. Cuando quieras usar la sentencia, la llamas desde tu c�digo con
"Recursos.ElNombre" (donde "Recursos" depender� de c�mo hayas llamado al
archivo .resx).
Para las partes de la sentencia que sean variables, usa siempre
par�metros ("select ... where campo=@algo") en lugar de concatenar variables
en el texo de la sentencia, y luego a�ades los par�metros ("@algo") a la
colecci�n Parameters del Command antes de ejecutar la sentencia.
Otra alternativa, por supuesto, es dejar la sentencia dentro del
servidor en un procedimiento almacenado, y desde el c�digo cliente limitarte
a llamar al procedimiento (pas�ndole los par�metros que necesite).