Partiendo desde el punto que tu BD VFP esta bien diseñada. Es decir,
-Tablas
-Consultas
-Indices
-Relaciones
-Integridad referencial
1.Requisitos:
Conocimiento de DBRMS (MS SQLServer)
2.Debes crear con el diseñador de MSSqlserver Studio, todos los componentes de tu base de datos VFP Mencionados Arriba.
3.En tu proyecto vfp, creas una conexión que va a ser el vinculo a tu BD SQLServer
4. Puedes dejar tablas y vistas locales para uso local.
5. Puedes accesar a las tablas de sqlserver mediante "Remote Views", que te permitirán usar las tablas SQL como si fueran tablas VFP
6. Usas la funciones SQLCONNECT(), SQLEXEC()
7. Te recomiendo que comiences con una tabla sql, y creando códigos aislados de prueba. Así comencé yo, hace una pila de años...
8. Puedes usar las tablas mediante el código de ejemplo de VFP:
9. SUERTE!
Clear
LOCAL lnConn
LOCAL lnPercent AS Int && Input parameters must be typed.
LOCAL lnOutput
lnPercent = 50
lnOutput = 0
* Make connection, assuming a local trusted connection.
lnConn = SQLCONNECT('local')
IF m.lnConn > 0 && Success.
* Set the active database to PUBS.
SQLEXEC(m.lnConn, 'use pubs')
* Execute SELECT statement.
SQLEXEC(m.lnConn, 'SELECT * FROM authors', 'PubAuthors')
BROWSE
* Execute INSERT statement, get value of identity field.
SQLEXEC(m.lnConn, "INSERT INTO JOBS (job_desc, min_lvl, max_lvl);
VALUES ('Developer',75,150)")
SQLEXEC(m.lnConn, "SELECT SCOPE_IDENTITY()", "job_id")
? "ID for added Job is " + LTRIM(STR(job_id. Exp))
* Execute DELETE statement. Get number of records affected.
SQLEXEC(m.lnConn, "DELETE FROM JOBS WHERE job_desc ='Developer'")
SQLEXEC(m. LnConn, "SELECT @@ROWCOUNT", 'rowcount')
? Rowcount. Exp, "record(s) deleted"
* Call a stored procedure with no parameters.
SQLEXEC(m.lnConn, 'sp_who', 'activeusers')
BROWSE
* Execute stored procedure with an INPUT parameter.
SQLEXEC(m.lnConn, 'exec byroyalty ?lnPercent','HalfOffAuthors')
* Create temp stored procedure with OUTPUT parameter and call it.
SQLEXEC(m.lnConn, "CREATE PROCEDURE #MyProc @outparam int OUTPUT AS;
SELECT @outparam=100")
SQLEXEC(m.lnConn, "exec #myProc ?@lnOutput")
? m.lnOutput
* Create a temp stored procedure with INPUT and OUTPUT parameters
* and call it.
SQLEXEC(m.lnConn, "CREATE PROCEDURE #MyProc2 " + ;
"@inputparam INT, " + ;
"@outparam int OUTPUT " + ;
"AS SET @outparam=@inputparam*10")
SQLEXEC(m. LnConn, "exec #myProc2 ?lnPercent, ?@lnOutput")
? m.lnOutput
* Get version information.
SQLEXEC(m. LnConn, 'SELECT @@VERSION','SQLVersion1')
? STRTRAN(SQLVersion1.Exp,CHR(0))
* Disconnect.
SQLDISCONNECT(m.lnConn)
ELSE
? "Unable to connect to SQL Server"
Endif
RETURN