Page 1 of 1

Base de datos SQL Server...??

Posted: Wed Aug 06, 2014 6:40 pm
by Mayor_Valenzuela
Estimados,

Hace mucho que no visito este foro, siempre acudo de ser necesario. voy al grano directamente: debo conectarme a una DB en SQL server, he buscado sin encontrar mucho de donde obtener un ejemplo de como conectar y trabajar con esas tablas. Busque info acerca de "sqlwin" y al compilar faltaban algunos includes y librerias.

¿Hay alguna manera efectiva de poder hacer esta conexión?

Si alguien lo ha logrado, agradecería un poco de ayuda... solo como conectar, necesito solo un empujón.

Agradecido. :oops: :oops: :oops:

Re: Base de datos SQL Server...??

Posted: Wed Aug 06, 2014 6:53 pm
by Baxajaun
Hola Mario,

busca en el foro sobre ADO y en http://www.connectionstrings.com/sql-server/ busca la cadena de conexión a SQL Server.

En el foro encontrarás muchos ejemplos de ADO.

Saludos

Re: Base de datos SQL Server...??

Posted: Wed Aug 06, 2014 7:04 pm
by Mayor_Valenzuela
Hola,

Gracias por la pronta respuesta, busque sobre ADO y casi todo es muy ambiguo, no muy claro, las cadenas de conexion del link ya las habia visto, como aplicarlas es lo que no logro encontrar.

Una vez mas... muchas gracias...

Re: Base de datos SQL Server...??

Posted: Wed Aug 06, 2014 7:16 pm
by carlos vargas
buscar en la web el cliente de ms sql server version 10 (para sqlserver 2008 R2)
instalarlo en la pc cliente

codigo para conectar y crear recordset.

Code: Select all

         cConn := "Server=MYSERVER\TECHNOTEL;Database=monica;Uid=sa;Pwd=Admin2012;";network=dbmssocn;
         oConn := FW_OpenAdoConnection( cConn, FALSE )

         IF HB_IsNil( oConn )
            MsgStop( "Acceso al servidor de datos no fue posible." )
         ENDIF

         oRS := KRecordSet( oConn, "SELECT * FROM TABLA")
         IF oRS <> NIL
              xbrowse( oRS )
         ENDIF

         oRS:Close()
         oConn:Close()
         
 

Code: Select all

FUNCTION KRecordSet( oConn, cSQL, nCursorLocation, nCursorType, nLockType )
   LOCAL oRS, oRST

   DEFAULT nCursorLocation := adUseClient, ;
           nCursorType     := adOpenStatic, ;
           nLockType       := adLockOptimistic

   IF HB_IsObject( oConn )
      IF oConn:State == adStateOpen
         oRST := TOleAuto():New( "ADODB.RecordSet" )
         WITH OBJECT oRST
            :ActiveConnection := oConn
            :Source           := cSQL
            :CursorLocation   := nCursorLocation
            :CursorType       := nCursorType
            :LockType         := nLockType
         END
         TRY
            CursorWait()
            oRST:Open()
            CursorArrow()
         CATCH
            CursorArrow()
            FW_ShowAdoError( oConn )
            oRST := NIL
         END
      ENDIF
   ENDIF

RETURN oRS
 

Re: Base de datos SQL Server...??

Posted: Fri Aug 08, 2014 3:43 pm
by Mayor_Valenzuela
Gracias a quienes aportaron a introducirme en este tema, resulta que despues de mucho buscar y de recibir ayuda, ya que esa es la intención de este foro, bueno, logre conectarme a SQL Server por medio de un string de conexión, pero al tratar de tener acceso a una de las tablas me da un error el cuan no se identificar, he tratado de buscar referencias de TOleAuto pero no he encontrado nada, el código quedo asi y lo dejo para futuras referencias por si alguien tenga que enfrentarse a este tema.

Code: Select all

#include "fivewin.ch"

Function Main()
    Local cConn, oConn, oRx, FALSE := .F., cConnection
    Local oCon := TOleAuto():New( "ADODB.Connection" )

/*  oDL = CreateObject( "Datalinks" ):PromptNew()
   if ! Empty( oDL )
      cConnection = oDL:ConnectionString
   endif

    MsgInfo( cConnection ) */

   cConnString := "Provider=MSDASQL.1;Password=xxxxxxxx;Persist Security Info=True;User ID=sa;Data Source=xxxxxxx;Initial Catalog=XXXX"
*    oConn := FW_OpenAdoConnection( cConnection, .t. )
   oConn := FW_OpenAdoConnection( cConnString, .f. )

   IF HB_IsNil( oConn )
     MsgStop( "Acceso al servidor de datos no fue posible." )
     Else
         MsgInfo( "Acceso al servidor de datos fue concedido." )
         cTable := "iw_tprod"
         oRs := TOleAuto():New( "ADODB.Recordset" )
         try
       oRs:Open( "SELECT * FROM iw_tprod" , oConn )
     catch oError
       MsgInfo( oError:Description )
     end

/*     oRS := KRecordSet( oConn, "SELECT * FROM iw_tprod")
     IF oRS <> NIL
       xbrowse( oRS )
       oRS:Close()
     ENDIF
*/

     oConn:Close()
   ENDIF

Return ( Nil )

 
Use los dos modo de recordset que es el de Carlos Vargas, a quien agradezco su ayuda mas concreta y la otra del codigo de FIVEDBU de Antonio Linares, el temas es que sigo menos ciego que al principio, mi intención es leer la Tabla SQL y llevarla a un mdb o dbf para proyecto interno. Si hay algo que estoy haciendo mal, agradecido estaré...

Re: Base de datos SQL Server...??

Posted: Fri Aug 08, 2014 4:02 pm
by Mayor_Valenzuela