La segunda puede plantearse al iniciar el programa, y las consultas se hacen sobre esa conexión 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 ODBC
lc_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 ****************************************
Carlos [caremi66]