|
|
|
|
|
|
|
Configuración: Windows XP Internet Explorer 6.0
Hola
el programa express del SQL es "SQL Server Management Studio Express", googlealo y lo bajas es Gratis, con eso te sacas la duda si el problema es tu programa o la conexion de la lan.. -Por otro lado, deshabilita el Firewal de ambos windows, SQL Server y Cliente. - otra, probar realizar telnet "IP SERVIDOR SQL" "PORT SQL" |
Hola
Me fue muy util la informacion Gracias |
Gracias a todos
Saludos |
Hola Tengo una Base de Datos en SQL Server y kiero mandar a traer los datos desde VB como le Ago???
|
Hola necesito generar un cod de factura que se genere automaticamente de forma incremental y no entiendo como hacerlo a pesar que he consultado en internet...por alli conseguí esto pero no se como aplicarlo en mi formulario de visual basic, aqui se los dejo para ver si alguien me explica como realizarlo...de verdad necesito esa ayuda...
Incrementar un valor dentro de un char A veces cuando tenemos que trabajar con facturas, socios o campos de texto que incluyan un número tenemos que realizar una serie de cálculos para crear los valores adecuados. Aquí vamos a intentar resolver los problemas que se presentan al calcular estos valores. Supongamos que nos piden una tabla donde hay que guardar información de las facturas de una empresa, y uno de los requisitos que nos imponen es que esas facturas lleven como código un valor que contenga el año en curso, una letra y tres números (es un código bastante habitual. Cosas peores me han pedido). Nuestros números de factura tienen que tener el siguiente aspecto 2004A0012004A0022004A0032004A004...2004A9992004B0012004B002Y tienen que tener valores consecutivos obviamente. No es que sea especialmente complicado, pero puede darnos algún dolor de cabeza la primera vez que abordemos un problema de este tipo. Solución: Funciones para tratar cadenas Por supuesto vamos a utilizar un procedimiento almacenado para insertar las nuevas facturas, y será dentro de este procedimiento almacenado donde generamos el número de factura usando funciones de tratamiento de cadenas (lo haremos dentro de un procedimiento almacenado para asegurar que los números de factura son únicos y consecutivos). Creamos la tabla ‘Facturas’ con el siguiente script: CREATE TABLE Facturas ( Id int IDENTITY (1, 1) NOT NULL, NumeroFactura char(8), Total money NULL) GOALTER TABLE Facturas ADD CONSTRAINT PK_Facturas PRIMARY KEY CLUSTERED (Id)GOLo primero será averiguar cual es el último código de factura introducido. Para ello podemos ejecutar una consulta de selección que obtenga el ‘NumeroFactura’ más alto de la base de datos, entendiendo como más alto el que dentro de nuestro año tiene la mayor letra del alfabeto y dentro de esa letra el mayor número de tres dígitos. Realmente es sencillo porque simplemente ordenando esa columna de manera descendente, el primer elemento que aparece es el que buscamos. SELECT TOP 1 NumeroFactura FROM facturas ORDER BY NumeroFactura DESCUna vez que obtenemos este valor habrá que obtener la parte numérica final. Para ello utilizamos la función SUBSTRING que funciona de la siguiente manera: SUBSTRING(cadena, inicio, longitud)Esta función es igual que en Visual Basic. Se le pasa una cadena y nos devuelve otra cadena con los caracteres que se encuentran entre la posición ‘inicio’ y la posición ‘inicio+longitud’. Lo que esta función nos devuelve es un varchar así que hay que convertirlo en un número, y para ello tenemos la función CONVERT. CONVERT ( tipo_de_datos , cadena )Convierte la ‘cadena’ pasada como argumento en el tipo especificado (si es posible). Está función sirve para lo mismo que la función CAST y aunque ésta última es la función estándar en el ANSI SQL-92 yo prefiero CONVERT porque es casi igual a la de Visual Basic. El código que obtendrá los tres números finales es: CONVERT (int, SUBSTRING(NumeroFactura, 6,3))Y hay que incrementar ese número en uno. Eso es fácil SET @Numero=@Numero + 1Y hay que mirar si este número sobrepasa nuestro rango de 999. Si pasa reiniciamos a 0 IF @Numero >99 SET @Numero=0Y después de esto hay que incrementar la letra. DECLARE @Letra char(1)SET @Letra = SUBSTRING(NumeroFecha, 5, 1)SET @Letra= CHAR(ASCII(@Letra) + 1)La función ASCII devuelve el código ASCII de un carácter, lo incrementamos en uno y con CHAR obtenemos el carácter correspondiente al código ASCII proporcionado. ¿Qué ocurre si llegamos a la ‘Z’? Pues que habría que pensar en como tratar el caso, pero no es muy diferente de lo que estamos haciendo. El último paso es reconstruir el número de factura. Para obtener los elementos que nos faltan usamos las funciones RIGHT y LEFT que funcionan de la misma manera. Reciben dos argumentos: la cadena con la que trabajamos y el número de caracteres que cogemos por la izquierda o por la derecha. Una vez llegados a este punto lo que nos queda es insertar el pedido en la tabla con el nuevo numero de factura hallado. El resumen de todo esto podría ser el siguiente procedimiento almacenado: CREATE PROCEDURE NuevoPedido @Total money ASDECLARE @NumeroFactura varchar(8)DECLARE @Numero intDECLARE @Letra char(1)DECLARE @NuevoNumero varchar(8)SELECT TOP 1 @NumeroFactura=NumeroFactura FROM Facturas ORDER BY NumeroFactura DESCSET @Numero=CONVERT(int, SUBSTRING(@NumeroFactura, 6, 3))SET @Numero=@Numero + 1SET @Letra = SUBSTRING(@NumeroFactura, 5,1)IF @Numero >999 BEGIN SET @Numero=0 SET @Letra= CHAR(ASCII(@Letra) + 1) ENDSET @NuevoNumero= LEFT(@NumeroFactura, 4) + @Letra + RIGHT ('000' + CAST(@Numero AS varchar(3)),3 )INSERT INTO Facturas (NumeroFactura, Total) Values (@NuevoNumero, @Total)Y utilizar este procedimiento almacenado es sencillo. EXEC NuevoPedido 1000El esquema para trabajar con números dentro de tipos char es este, ahora simplemente queda mejorarlo utilizando una transacción, haciendo que el procedimiento almacenado devuelva el número de pedido creado o cualquier otra cosa que se os ocurra.
|
| 07/05 16h14 | Error ASP .NET y SQL Server | 4 |
| 05/05 20h10 | Como crear procesos almacenados en SQL Server | 5 |
| 17/06 23h47 | Referencias de visual basic | 3 |
| 23/04 18h16 | Eliminar registros en sql server con .net | 2 |
![]() | TYPSoft FTP Server - TYPSoft FPT Server, es un ftp server rápido y fácil con la ayuda del comando estándar del ftp, interfaz limpio, arquitectura... | Categoría: FTP Licencia: Freeware/gratuit |
![]() | Filezilla Server - FileZilla Server, es un servidor FTP gratuito, de fácil manejo por su sencillez, que nos permite administrar la seguridad,... | Categoría: FTP Licencia: Freeware/gratuit |
![]() | Wampserver - Wamp Server, antes conocido como WAMP, te permite instalar y configurar fácilmente en tu sistema lo último del servidor Web... | Categoría: Servidores Licencia: Open Source |
![]() | KompoZer - KompoZer es un editor de páginas web, esta basado en otro editor NVU, los dos son de código abierto (Open Source), es un... | Categoría: Webmaster Licencia: Open Source |