
Enviado por caremi66 - Portal FOX
La primera, segun mi experiencia, es la forma mas rapida de conectarse, tambien depende como esten planteando el sistema. Ésta al ser la "mas rapida", puede usarse para que cada vez haga una consulta.
La segunda puede plantearse al iniciar el programa, y las consultas se hacen sobre esa conexion pero no se vuelve a crear por cada consulta
La tercera, igual que la segunda, la ventaja de esta es que no es necesario declarla en ODBC
La primera
***************************
oConn = createobject('ADODB.Connection')
cConnString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID="+ALLTRIM(lc_usuario_)+";Pwd="+ALLTRIM(lc_password)+";Initial Catalog="+ALLTRIM(lc_nombre)+";Data Source="+ALLTRIM(lc_sname)
oConn.Open(cConnString)
oRS = CREATEOBJECT("ADODB.Recordset")
oRS.ActiveConnection = oConn
oCA=CREATEOBJECT("CursorAdapter")
oCA.DataSourceType = "ADO"
oCA.DataSource = oRS
oCA.MapBinary = .T.
oCA.MapVarchar = .T.
oCA.SelectCmd = "select * from empleados" && ejemplo
IF !oCA.CursorFill()
LOCAL laError
DIMENSION laError[1]
AERROR(laError)
MESSAGEBOX(laError[2])
ELSE
********** lo "capturo" en un cursor para manipularlo en modo local
loAlias=ALIAS()
cMacro1="SELECT * FROM "+loAlias+" INTO CURSOR "+ loCursor +" readwrite"
&cMacro1
WAIT windows "Procesado "+loCursor NOWAIT
ENDIF
*****************************************************************La segunda, Atravez de ODBClc_sql=SQLCONNECT("localdb","simio","fantasiA") && localdb tiene que estar creado en odbc solapa usuarios
if m.lc_con < 0
nopc=MESSAGEBOX("No se pudo conectar , talvez ODBC no este configurado",0+48,"Error")
RETURN .f.
endif
****************************************La tercera, conectar usando los drivers de ODBC (no es necesario crear una conexion en ODBC)lcStringConn="Driver={SQL Server}"+";Server="+lc_IPSQL+";Database="+lc_nombre+";Uid="+lc_usuario_+";Pwd="+lc_password
***Evitar que aparezca la ventana de login
SQLSETPROP(0,"DispLogin",3)
SQLSETPROP(0,"IdleTimeout",0)
lc_con=SQLSTRINGCONNECT(lcStringConn)
if m.lc_con < 0 && nose pudo conectar
wait windows "no conecta"
endif
****************************************