Soporte en diseño y administración de base de datos y programación con S

#1
Con gusto resolveré dudas sobre:

Diseño de base de datos
Administración
Tunning
Execution Plans

Programación con implementaciones de SQL como:

T-SQL
PL/SQL
SQL PL

Lo anterior puede ser para cualquier operación DML, DDL, DCL o DTL. Programación de stored procedures, triggers, stored functions.

Y sobre todo el uso de mejores prácticas

Todo lo anterior para los siguientes RDBMS:

Oracle 7.3-11g
Sybase ASE 12.5-15
DB2 UDB 8.2-9.0
SQL Server 2000-2008

Aclaro que es orientación y solución de dudas, no esperen que acepte delegación de trabajo.
 

yisus

Bovino adicto
#2
orale chido se ve que si le sabes bien.

Bienvenido

Por ahorita no tengo ninguna duda, pero es bueno saber que andas por aqui

Saludos
 

Akonerz

Bovino adicto
#4
Buenas tardes gracias por ofrecerte con tu ayuda mira yo tengo una pequeña duda estoy haciendo una aplicacion de gestion en vb.net 2008 y de servidor de datos uso sql 2008 mira lo que quieor saber es como cambiar el valor de todos los datos de una columna digamos que es una columna donde guardo el precio del dollar para asi saber el precio del producto y quiero saber como actualizar todos los registros de la tabla en esa columna y cuando estos cambien se actualize el precio del articulo me podrias ayudar???
 
#5
Mira para actualizar los datos de la columna sería a través de una instrucción update.

Para que cuando actualices los datos, cambien otros valores lo que suena más razonable sería el uso de un trigger.

Si quieres podemos hacer los ejemplos solo dame mas info para ser más específico.

Saludos
 

Akonerz

Bovino adicto
#6
un poco mas profundo

bueno voy a tratar de explicarte todo lo mejor que pueda para que me ayudes ok
en sql tengo una tabla "articulos"
tengo campos
id_art nchar(5)
nombre nchar(30)
precio decimal(12,2)
dollar decimal(3,2)
cantdollar decimal (5,2)

en vb.net
cuando agrego un campo a la tabla lo hago con un dataset
se supone el usuario llena el dato nombre y cantidad de dollar
el id lo genera aut.
cuando pone la cantidad esta se multiplica x el valor en la columna dollar la cual tiene el valor del dolar en ese momento digamos 13,45 y el resultado lo pone en el campo precio y ago un insert en sql
en eso no tengo problema
ahora digamos que lo que quiere es actualizar el valor de toda la coumna dolar no se si desde vb o sql ay tu recomiendame
y una vez cambiada esta realize otra ves las operacione spor haci desirlo para que me entregue el nuevo precio
gracias por tu ayuda
 
#7
Si, como te comentaba hacerlo desde el lado de la base de datos sería a través de un update y de un trigger, o utilizando 2 updates.

Antes de eso, cual es la llave primaria de la tabla? El update lo deberias hacer en funcion de los campos de la llave primaria (si quieres modificarlos todos, omite las instrucciones a partir del where)

--Update para actualizar el valor del dolar
Sería algo asi UPDATE Articulos Set dollar=ELNUEVOVALOR WHERE CONDICIONES CON LOS CAMPOS DE LA LLAVE PRIMARIA

--Update para actualizar el precio
UPDATE Articulos SET precio=dollar*cantdollar

La claúsula WHERE es opcional, depende si quieres modifcar todos los registros o algunos en especifico.

Ahora el trigger podría ser algo asi:

CREATE TRIGGER cambio_Dolar UPDATE
--El nombre de la tabla
ON Articulos
--El tipo de trigger AFTER se refiere a que se ejecuta después de la operación y antes de terminar la transacción
AFTER UPDATE
AS
--Verificar que sea la columna actualizada
IF NOT UPDATE(dollar)
RETURN
--Comienza el bloque funcional
BEGIN
--Actualizar el precio de los registros modificados
--Se usa un query correlacionado con la tabla especial INSERTED que tiene los registros modificados en el ciclo de vida del trigger
UPDATE Articulos A set precio=dollar*cantdollar where EXISTS (SELECT I id_art from inserted I where I.id_art=A.id_art)
END
go

El campo id_art se escogió como ejemplo, podría ser cualquier otro, incluso una constante.

Si quieres como solución alternativa el trigger lo podrías generar con código de VB.NET y cargar el assembly en SQL SERVER (si es 2005)

Como funciona esto? Cada vez que se ejecute un update sobre la tabla en la columna de dollar ese proceso se dispara automáticamente (y MUY IMPORTANTE dentro de la misma transacción) y actualiza los valores de las otras columnas. La ventaja del trigger es que solo actualizaría los registros modificados.

ES DE VITAL IMPORTANCIA que dispares un commit a la transacción cuando termines tus operaciones de update.

Cualquier duda con gusto la ampliamos hehe y esperamos aclararla tambien

saludos
 

Akonerz

Bovino adicto
#8
Bueno ya voy entendiendo mas la cuestion pero unas preguntas algo tontas a lo mejor los updates que se maneja seria la sentencia enviada desde vb.net no es asi asi como si se ingresaran o modificaran datos o eso se escribe en alguna parte del server???
y si no me equivoco el trigger se ejecuta automaticamente no al insertar los datos en sql?
buena muchas gracias por el tiempo que tomas en contestar mis preguntas
 

damyan_jano

Bovino Milenario
#9
muchas gracias por ofrecer tus servicios brother... x lo pronto no ocupo mayor cosa pero cuando tenga seguramente te avisare... especialmente para vincular php cn flhas,,, gracias
 
#10
Tengo el siguiente problema: Deseo almacenar imagenes de documentos escaneadas, el escaner es controlado por mi programa y este me permite recuperar la imagen generada en un archivo BMP, JPG o TIFF, tengo muchas preguntas y algunas de ellas son: Como almacenar la imagen? En la base de Datos directamente en algun tipo de campo ( Supongo un blob )? o solo almacenar la direccion del archivo de imagen generado? Por cuestiones de seguridad me gustaria poder almacenarlo en un campo de la base de datos, pero el rendimiento?, Existe algun tipo de campo optimizado para guardar este tipo de dato?. Me interesa saber estas cuestiones hablando de DB2 o SQL server. De antemano Gracias
 

lazc

Baneado :(
#11
hola amigo yo tngo nose si es problema o duda lo que necesito saber es lo siguiente cuando ya tengo una base de dato terminada con sus consultas y todo en sql server 2000 como ago para sacar esa base de datos para que ella me funcione como un programa aparte ya de sql server es que ya tengo una base terminada y tengo que entregarla en la univeersidad ya funcionando como un programa a parte. gracias esta bueno tu post
 

rodrigy

Bovino maduro
#13
Lazc:
Tienes que distribuir tambien la base de datos como tal.
Cuando entregues tu programa ya hecho (exe's, instaladores, etc), tienes que describir que tu programa requiere SQL Server 2000 o superior (express o server) para el funcionamiento de la base de datos.

La base de datos no funciona por si sola, como Access, requiere el motor de base de datos.
 

rodrigy

Bovino maduro
#14
Pillo99>
Imagenes en Base de datos.

Realice un sistema de control de avances de obra, el cual debe controlar imagenes de la obra relacionadas a la tarea que se ejecuta y me encontre con el dilema de almacenar las imagenes en la base de datos o en alguna ubicacion del disco duro.

Mis cuestionamientos para inclinarme por almacenar las imagenes en la base de datos, fue la siguiente.
* Existe una red de 40 Pc's que requieren acceso al programa y para estar gestionando permisos de usuario en la carpeta de imagenes compartida es un PITA. (Pain in the ass)
* Que algun usuario entre a la pc servidor y me mueva de ubicacion las imagenes, ya no coincidirian con las rutas almacenadas en la base de datos.
* Virus que sobreescriban los archivos

Algunos contras que he observado.
* Tamaño de la base de datos, actualmente es de 1.5 Gb aprox para 1 proyecto.
* He realizado multiples bases de datos para diferentes proyectos y no se cree un moustro de muchos gigas.

Ventajas
Al menos para mi, Un solo punto de respaldo. painless.

Mis comentarios.
 
#15
hola , gracias por ofrecerte. llevo 2 meses tratando de encontrar una solucion para realizar un carrito de compras. lo que se es que nesesito una base de datos. que supuestamenta ya hise en access, y cheque unos tutoriales de dreamweaver. de como hacerlo, pero no entiendo muy bien. espero me puedas ayudar. muchas gracias
 

aolivares

Bovino adolescente
#16
Hola buenas noches, se que a lo mejor sueno muy novato, y en realidad es por que soy muy novato, me gustaría que me ayudaras a cargar una página con los datos, tengo mi pagina www.ejemplo.com ahi tengo mi base de datos con phpmyadmin (pero esta dentro de mi panel de host (mi empresa en linea)) y es una aplicacion dentro de este pero no logro conectar la base de datos. por un decir tengo hecho mi formulario y en el enlace esta lo siguiente:
<?
$host = "localhost";
$user = "usuario dado de alta en el panel dbadmin";
$password= "contraseña asignada desde el panel";
$db="registrados";
$conectar= mysql_connect($host,$user,$password);
mysql_select_db($db,$conectar);
mysql_query insert into usuarios (nombre,apellidos,usuario,cont,email) values ('$nombre', '$apellidos', '$usuario', '$cont', '$email');
?>

Pero despues de esto no me conecta alguien me podría ayudar???
 
Arriba