Manejo de Inicios de Sesión desde VFP

Dery
25 de Noviembre del 2003
tengo una BD en SQLServer, tengo definidos los inicios de sesión, he tratado de utilizar el SQLCONNECT y SQLSTRINCONNECT( ), pero no resulta con ninguno, si alguien tuviese un codigo y me pudiera ayudar se lo agradeceria muchisimo

Alex
25 de Noviembre del 2003
Que tal Dery.

Para trabajar con SQL Server debes tener creada una conección a tu servidor de datos en el administrador de ODBC.

Esta es la respuesta que di hace algunos dias a un compañero.

Para trabajar con SQL Server tenes que hacer lo siguiente.

1- Esto te creara un origen de datos de SQL Server directamente en el Administrador de orígenes de datos ODBC, este se llama por ejemplo Prueba

DECLARE Integer SQLConfigDataSource IN odbccp32.dll ;
Integer, Short, String @, String @
ODBC_ADD_SYS_DSN = 1

cdriver = "SQL Server" + CHR(0)
cdsn = "dsn=Prueba" + CHR(0) + ;
"Description=Conexion de Prueba" + CHR(0) + ;
"Server=Avargas" + CHR(0) + ;
"Trusted_Connection=Yes" + CHR(0) + ;
"Database=PRUEBA"

? SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, @cdriver, @cdsn)

2- Creas una base de datos asi.
Create database <Nombre de la DB>

3- Creas una conección con la siguiente instrucción.
OPEN DATABASE <Nombre de la DB>

CREATE CONNECTION <Nombre de coneccion> DATASOURCE "Prueba" USERID "sa"
= DBSETPROP("Prueba", "Connection", "DispLogin",3)
= DBSETPROP("Prueba", "Connection", "Userid","sa")
= DBSETPROP("Prueba", "Connection", "Database","<Nombre de la DB en SQL Server>")

hasta este punto ya tenes listo el ODBC y has creado una conección a tu base de datos en el SQL Server.

4- Para consultar y actualizar las bases de datos remotas, debes crear vistas en las asi:

Esto es para una vista de consulta no de actualización.
CREATE SQL VIEW <Nombre del View> ;
CONNECTION <Nombre de coneccion> SHARE ;
AS SELECT * FROM <Tabla en SQL Server> ;
WHERE <Campo tabla>=<Lo que necesites condicionar> && no es obligatorio

Esto es para una vista de actualización.
CREATE SQL VIEW <Nombre del View> ;
CONNECTION <Nombre de coneccion> SHARE ;
AS SELECT * FROM <Tabla en SQL Server> ;
WHERE <Campo tabla>=<Lo que necesites condicionar> && no es obligatorio

= DBSETPROP("<Tabla.campo>", "Field", "KeyField", .t.) && este será en Key
= DBSETPROP("<Nombre del view", "View", "SendUpdates",.t.) && esto hace que podas modificar o agregar datos
= DBSETPROP("<Tabla.Campo>", "Field", "Updatable", .t.) && El valor de este campo es modificable
= DBSETPROP("<Nombre del view>", 'View', 'Comment', "<Comentario>") && un comentario en para el view no es obligatorio.

OjO.
** Esto = DBSETPROP("<Nombre del view", "View", "SendUpdates",.t.) solo lo escribiras una vez y en los view para hacer modificaciones o agregados de datos.

** Esto = DBSETPROP("<Tabla.Campo>", "Field", "Updatable", .t.) && El valor lo escribiras en cada campo en el que necesites agregar o modificar datos, si son 10 campos amodificar, deberas escribir esta linea para cada campo.

Cuando se necesita insertar nuevos registros, lo mas conveniente es poner como modificables todos los campos.

si te queres ahorrar todo el codigo para los views
pone en uso la base de datos local que creaste y escribi lo sigte.

A- Create View Remote
B- Aparece marcado por defecto Connections en la parte inferior, Seleccionas la conección que quieras.
Si queres trabajar directamente con el ODBC, marca Available data sources, y seleccionas el origen de datos deseado.

C-OK
D-Seleccionas la tabla deseada
E-Add
F-Seleccionas cada uno de los campos que querras accesar.
G-En el tab Update criteria, definiras los campos que seran Key y los que se actualizaran.
H- N olvides marcar Send SQL updates para que tus cambios en datos tengan efecto.
I- los otros tabs muestran claramente su utilidad, Filtros, Ordenes, Grupo Etc.

Espero haberme explicado bien y que te sirva todo esto.

Si necesitas mas ayuda avisas.


Alex Vargas