Solo disponible con licencia BLUE
Sqldata permite comparar estructuras de tablas de 2 bases de datos, esto será útil cuando ustedes
creen cambios en la estructura de los datos en su computadora de desarrollo y cuando van al
cliente , saber que diferencias hay en el momento, para poder modificar la base de datos con su
correspondiente administrador de datos
La clase mostrara:
Tablas no creadas
Cambios de nombres de campos
Campos nuevos y campos sobrantes
Cambios en el ancho o cantidad de decimales de los campos
Cambios en si permite nulos o no un campo
Cambios en el orden en los que aparecen los campos (opcional)
Para que funcione debe crearse un formulario en el programa del tamaño que permita un browse
de una tabla y un solo botón “comparar”
Dentro del botón se colocara lo siguiente
LOCAL vcadtablas
LOCAL osqldata as sqldata OF [Link]
osqldata=CREATEOBJECT("[Link]")
TEXT TO vcadtablas NOSHOW PRETEXT 15
clientes,
detalle,
correlativos,
correos
ENDTEXT
[Link](_screen,"1",thisform,vcadtablas,.F.,”estructura_sql
[Link]”)
La clase mostrara
Se puede tambien comparar bases de datos con dbfs, o dbf con dbfs
Para eso agregue .T. al final del metodo
LOCAL vcadtablas
LOCAL osqldata as sqldata OF [Link]
osqldata=CREATEOBJECT("[Link]")
TEXT TO vcadtablas NOSHOW PRETEXT 15
clientes,
detalle,
correlativos,
correos
ENDTEXT
[Link](_screen,"3",thisform,vcadtablas,.T.,”estructura_sql
[Link]”)
Despues de mostrar la diferencias presione la tecla ESC, y se preguntara
si se desea hacer los cambios automáticos de campos eliminados,
modificados y agregados de tablas existentes.
Las tablas índices y desencadenantes (trigger) nuevos, se deben crear por procedimientos
Ejemplo para crear la tabla clientes. La tabla clientes se creara solo si no existe.
Text to vsend
CREATE TABLE [dbo].[clientes](
[id] [int] IDENTITY(1,1) NOT NULL,
[numcli] [int] NULL,
[nombre] [nchar](10) NULL,
[direccion] [nchar](10) NULL,
[telefono] [nchar](20) NULL,
[fnacimiento] [date] NULL,
[decimalnum] [numeric](15, 2) NULL,
[imagena1] [char](200) NULL,
[imagenn1] [char](200) NULL,
[imagend1] [image] NULL,
[imagena2] [char](200) NULL,
[imagenn2] [char](200) NULL,
[imagend2] [image] NULL,
[clave] [bit] NULL,
[logusuario] [nchar](10) NULL,
[logfecha] [datetime] NULL,
[logui] [char](36) NULL,
[logpc] [varchar](30) NULL,
[stock] [int] NULL,
[estimado] [varchar](10) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
Endtext
[Link](_screen,”1”,vsend,,.T.) &&el ultimo parámetro indica que no de error si
existe la tabla
Aclaracion:
Debe crearse un procedimiento que cree todas las tablas de las bases de datos, mediante
procedimiento text endtext y enviados con psqlcomando inicialmente, luego se ejecuta la función
psqlcomparar.
Puede incluirse el archivo generado dentro del ejecutable