30 de agosto de 2010

Formas de conectarse a un Servidor SQL

La primera, según mi experiencia, es la forma mas rápida de conectarse, también depende como esten planteando el sistema. Ésta al ser la "mas rápida", puede usarse para que cada vez haga una consulta.
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]