Uso de ADS no me funciona

Uso de ADS no me funciona

Postby noe aburto » Fri Sep 20, 2013 10:36 pm

Saludos al foro:

Una consulta con respecto a ADS:

en mi programa define al inicio del mismo:
EXTERNAL ADS

posteriormente, ajecuto la funcion

function ActivaADS()

//resquest _ADS//
RDDREGISTER("ADS",1)
RDDSETDEFAULT("ADS")
ADSSETSERVERTYPE(2)
ADSLOCKING(.T.)
ADSRIGHTSCHECK(.F.)
request ADSKEYNO,ADSKEYCOUNT
return NIL

pero al ejecutar mi compilacion final me indica:

MiAlicacion.exe dejo de funcionar...

Que estare haciendo mal?

las libs que incluyo son:
<Libraries>
<Library Filename="p:\FUN\sicom.lib"/>
<Library Filename="p:\FWH\lib\FiveHC.lib"/>
<Library Filename="p:\FWH\lib\FiveHX.lib"/>
<Library Filename="p:\TSBUTTON\LIB\SButtonX.LIB"/>
<Library Filename="p:\TSBROWSE\LIB\SBrowseX.LIB"/>
<Library Filename="p:\RMChart\rmchart.lib"/>
<Library Filename="[xHarbour]rtl.lib"/>
<Library Filename="[xHarbour]vm.lib"/>
<Library Filename="[xHarbour]gtgui.lib"/>
<Library Filename="[xHarbour]lang.lib"/>
<Library Filename="[xHarbour]macro.lib"/>
<Library Filename="[xHarbour]rdd.lib"/>
<Library Filename="[xHarbour]dbfntx.lib"/>
<Library Filename="[xHarbour]dbfcdx.lib"/>
<Library Filename="[xHarbour]dbffpt.lib"/>
<Library Filename="[xHarbour]hbsix.lib"/>
<Library Filename="[xHarbour]rddads.lib"/>
<Library Filename="[xHarbour]ace32.lib"/>
<Library Filename="[xHarbour]codepage.lib"/>
<Library Filename="[xHarbour]common.lib"/>
<Library Filename="[xHarbour]pp.lib"/>
<Library Filename="[xHarbour]pcrepos.lib"/>
<Library Filename="[xHarbour]hbzip.lib"/>
<Library Filename="[xHarbour]zlib.lib"/>
<Library Filename="[xharbour]tip.lib"/>
<Library Filename="[xharbour]ct.lib"/>
<Library Filename="[xharbour]png.lib"/>
<Library Filename="[bcc]c0w32.obj"/>
<Library Filename="[bcc]psdk\odbc32.lib"/>
<Library Filename="[bcc]psdk\msimg32.lib"/>
<Library Filename="[bcc]uuid.lib"/>
<Library Filename="[bcc]cw32.lib"/>
<Library Filename="[bcc]import32.lib"/>
<Library Filename="[bcc]PSDK\psapi.lib"/>
</Libraries>
Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
User avatar
noe aburto
 
Posts: 418
Joined: Wed Nov 26, 2008 6:33 pm
Location: Morelia, Mich. Mexico.

Re: Uso de ADS no me funciona

Postby carlos vargas » Fri Sep 20, 2013 11:50 pm

Noé este es un programita completo que sua ads, revisalo.
tiene lo necesario para inciar con ads.

especiealmente la funcion Main_Iniciar()

Code: Select all  Expand view

/*-------------------------------------------------------------------------------------------------*/

#include "padron.ch"
#include "ads.ch"

/*-------------------------------------------------------------------------------------------------*/

GLOBAL oMutex

REQUEST HB_LANG_ESWIN, HB_CODEPAGE_ESWIN
REQUEST ADS, DBFCDX, DBFFPT

EXTERNAL AdsKeyNo, AdsKeyCount, AdsGetRelKeyPos, AdsSetRelKeyPos
EXTERNAL OrdKeyNo, OrdKeyCount, OrdKeyGoTo, OrdKeyRelPos

/*-------------------------------------------------------------------------------------------------*/

PROCEDURE Main()
   Padron()
RETURN

/*-------------------------------------------------------------------------------------------------*/

FUNCTION Main_Iniciar()
   LOCAL hIniFile
   LOCAL lConectar
   LOCAL cError1, cError2
   LOCAL nTipoServ, cServidor

   HB_LangSelect(  "ESWIN" )
   HB_SetCodePage( "ESWIN" )

   RddSetDefault( "ADS" )

   AdsSetCharType( ADS_ANSI )
   AdsSetFileType( ADS_ADT )
   AdsRightsCheck( FALSE )
   AdsLocking( FALSE )

   SET CENTURY  ON
   SET DATE     BRIT
   SET EPOCH    TO 1964
   SET OPTIMIZE ON
   SET CONFIRM  ON
   SET DELETED  ON
   SET TRACE    OFF
   SET SOFTSEEK OFF
   SET DECIMAL  TO 4
   SET FIXED    ON

   SET( _SET_FILECASE, 1 )
   SET( _SET_DIRCASE,  1 )

   OverrideAndExtend()

   SetBalloon( TRUE )
   SetGetColorFocus( CLR_MENTA )
   SetDialogEsc( FALSE )

   hIniFile  := HB_ReadIni( Lower( ".\PADRON.INI" ) )
   lConectar := FALSE
   nTipoServ := 0
   cError1   := ""
   cError2   := ""

   IF hIniFile <> NIL
      IF Len( HGETKEYS( hIniFile ) ) > 0
         TRY
            cTipo := hIniFile[ "DATOS", "tipo" ]
         CATCH
            cTipo := "0"
         END
         DO CASE
         CASE cTipo=="0"
            nTipoServ := 0
            cServidor := ""
         CASE cTipo=="1"
            nTipoServ := ADS_LOCAL_SERVER
            cServidor := hIniFile[ "DATOS", "conexion_local"    ]
         CASE cTipo=="2"
            nTipoServ := ADS_REMOTE_SERVER
            cServidor := hIniFile[ "DATOS", "conexion_remota"   ]
         CASE cTipo=="3"
            nTipoServ := ADS_AIS_SERVER
            cServidor := hIniFile[ "DATOS", "conexion_internet" ]
         ENDCASE
      ELSE
         MsgStop( "Error de lectura de archivo de conexión." )
      ENDIF
   ELSE
      MsgStop( "Error de lectura de archivo de conexión." )
   ENDIF

   IF nTipoServ > 0
      MsgRun( "Espere un momento, se esta intentando conectar al servidor de datos", "CONECTANDO"                                               , ;
              {|| lConectar := AdsConnect60( cServidor, nTipoServ, "myusuario", "myclave", NIL ,@hConexion ) } )
      IF !lConectar
         cError1 := AdsGetLastError( @cError2 )
         MsgStop( "Error en conexion a servidor de datos" + FINL + FINL + CStr(cError2) + FINL + CStr(cError1) )
      ELSE
         cTitulo := "Padron Electoral - Nicaragua. [" + AllTrim( cServidor ) + "]"
      ENDIF
   ENDIF

RETURN lConectar

/*-------------------------------------------------------------------------------------------------*/

PROCEDURE Padron()
   LOCAL oB1, oB2, oB3
   LOCAL oB4, oB5, oB6

   PUBLIC hConexion

   PRIVATE oDlg
   PRIVATE oFont
   PRIVATE cFolder
   PRIVATE cTitulo
   PRIVATE oClipboard

   PRIVATE cCedula        ,;  /*TIPO_ID*/
           cNombre1       ,;  /*PNOM*/
           cNombre2       ,;  /*SNOM*/
           cApellido1     ,;  /*PAPELL*/
           cApellido2     ,;  /*PAPELL*/
           cDireccion     ,;  /*DOMIC*/
           cDepaMuni      ,;  /*DEP->DEPADESC, LIS->ID_MUN*/
           dFechaNac      ,;  /*FECH_NAC*/
           cSexo              /*_*/

   IF !Main_Iniciar()
      RETURN
   ENDIF

   Limpiar_Datos( FALSE )

   DEFINE FONT oFont NAME "Tahoma" SIZE 0, -12

   DEFINE DIALOG oDlg NAME "DLG_PADRON" TITLE cTitulo FONT oFont ICON GetIcon()

   REDEFINE FOLDER oFolder ;
      ID 101 OF oDlg ;
      PROMPTS "Busqueda por cédula", ;
              "Busqueda por nombres y/o apellidos" ;
      PAGES "PAGE1",;
            "PAGE2" ;
      ON CHANGE Limpiar_Datos( TRUE )

   REDEFINE GET cCedula ;
      ID 101 OF oFolder:aDialogs[1] ;
      PICTURE "#############!" ;
      UPDATE

   REDEFINE BUTTON oB1 ;
      ID 301 OF oFolder:aDialogs[1] ;
      ACTION Buscar_PorCedula( cCedula )

   REDEFINE BUTTON oB2 ;
      ID 302 OF oFolder:aDialogs[1] ;
      ACTION Limpiar_Datos( TRUE ) ;
      CANCEL

   REDEFINE BUTTONBMP oB3 ;
      ID 303 OF oFolder:aDialogs[1] ;
      BITMAP "CLIPBOARD" ;
      WHEN !Empty( cCedula ) ;
      ACTION MostrarCedula( cCedula ) ;

   REDEFINE GET cNombre1 ;
      ID 102 OF oFolder:aDialogs[1] ;
      WHEN FALSE ;
      UPDATE

   REDEFINE GET cNombre2 ;
      ID 103 OF oFolder:aDialogs[1] ;
      WHEN FALSE ;
      UPDATE

   REDEFINE GET cApellido1 ;
      ID 104 OF oFolder:aDialogs[1];
      WHEN FALSE ;
      UPDATE

   REDEFINE GET cApellido2 ;
      ID 105 OF oFolder:aDialogs[1] ;
      WHEN FALSE ;
      UPDATE

   REDEFINE GET dFechaNac ;
      ID 106 OF oFolder:aDialogs[1] ;
      WHEN FALSE ;
      UPDATE

   REDEFINE GET cSexo ;
      ID 107 OF oFolder:aDialogs[1] ;
      WHEN FALSE ;
      UPDATE

   REDEFINE GET cDepaMuni ;
      ID 108 OF oFolder:aDialogs[1] ;
      WHEN FALSE ;
      UPDATE

   REDEFINE GET cDireccion;
      ID 109 OF oFolder:aDialogs[1];
      MEMO WHEN FALSE UPDATE

   /**/

   REDEFINE GET cCedula ;
      ID 101 OF oFolder:aDialogs[2] ;
      PICTURE "#############!" ;
      READONLY ;
      UPDATE

   REDEFINE BUTTON oB4 ;
      ID 301 OF oFolder:aDialogs[2] ;
      ACTION Limpiar_Datos( TRUE )

   REDEFINE BUTTONBMP oB5 ;
      ID 302 OF oFolder:aDialogs[2] ;
      BITMAP "CLIPBOARD" ;
      WHEN !Empty( cCedula ) ;
      ACTION MostrarCedula( cCedula )

   REDEFINE GET cNombre1 ;
      ID 102 OF oFolder:aDialogs[2];
      PICTURE "@!" ;
      UPDATE

   REDEFINE GET cNombre2 ;
      ID 103 OF oFolder:aDialogs[2];
      PICTURE "@!" ;
      UPDATE

   REDEFINE GET cApellido1 ;
      ID 104 OF oFolder:aDialogs[2];
      PICTURE "@!" ;
      UPDATE

   REDEFINE GET cApellido2 ;
      ID 105 OF oFolder:aDialogs[2] ;
      PICTURE "@!" ;
      UPDATE

   REDEFINE GET dFechaNac ;
      ID 106 OF oFolder:aDialogs[2] ;
      WHEN FALSE ;
      UPDATE

   REDEFINE GET cSexo ;
      ID 107 OF oFolder:aDialogs[2] ;
      WHEN FALSE ;
      UPDATE

   REDEFINE GET cDepaMuni ;
      ID 108 OF oFolder:aDialogs[2] ;
      WHEN FALSE ;
      UPDATE

   REDEFINE GET cDireccion ;
      ID 109 OF oFolder:aDialogs[2] ;
      WHEN FALSE ;
      MEMO ;
      UPDATE

   REDEFINE BUTTON oB6;
      ID 303 OF oFolder:aDialogs[2] ;
      WHEN !Empty( cNombre1 ) .or. !Empty( cNombre2 ) .or. !Empty( cApellido1 ) .or. !Empty( cApellido2 ) ;
      ACTION Buscar_PorNombre()

   /**/

   REDEFINE BUTTON ;
      ID 201 OF oDlg ;
      ACTION oDlg:END() ;
      CANCEL

   oB1:cToolTip := "Buscar datos de la cédula indicada"
   oB2:cToolTip := "Limpiar datos de busqueda anterior"
   oB3:cToolTip := "Muestra numero de cédula con giones"
   oB4:cToolTip := "Limpiar datos de busqueda anterior"
   oB5:cToolTip := "Muestra numero de cédula con giones"
   oB6:cToolTip := "Buscar datos del la cédula indicada"

   ACTIVATE DIALOG oDlg CENTER  ON INIT Inicializar_Clipboard()

   Main_Finalizar()

RETURN

/*----------------------------------------------------------------------------*/

PROCEDURE Inicializar_Clipboard()
   DEFINE CLIPBOARD oClipboard OF oDlg
RETURN

/*----------------------------------------------------------------------------*/

FUNCTION Buscar_PorCedula()
   LOCAL cSQL
   LOCAL lEncontrado := TRUE

   IF Empty( cCedula )
      lEncontrado := FALSE
      MsgAlert( "Introdusca el número de cédula a buscar sin los giones." )
      oFolder:aDialogs[1]:aControls[1]:SetFocus()
   ELSE
      cSQL := "SELECT {static} L.TIPO_ID, L.PNOM, L.SNOM, L.PAPELL, L.SAPELL, L.DOMIC, L.FECH_NAC, L._, "
      cSQL += "M.MUNIDESC AS MUNICIPIO, D.DEPADESC AS DEPARTAMEN "
      cSQL += "FROM LISTA AS L "
      cSQL += "LEFT OUTER JOIN MUNICIPIOS AS M ON L.ID_MUN=M.IDMUNICIPI "
      cSQL += "LEFT OUTER JOIN DEPARTAMENTOS AS D ON M.DEPACODI=D.DEPACODI "
      cSQL += "WHERE L.TIPO_ID=%1 "
      IF ADSRunSQL( "TEMP", cSQL, { cCedula } )
         IF TEMP->( Eof() )
            lEncontrado := FALSE
         ELSE
            SELECT "TEMP"
            cNombre1       := TEMP->PNOM
            cNombre2       := TEMP->SNOM
            cApellido1     := TEMP->PAPELL
            cApellido2     := TEMP->SAPELL
            cDireccion     := TEMP->DOMIC
            cDepaMuni      := RTrim( TEMP->DEPARTAMEN ) + "/" + RTrim( TEMP->MUNICIPIO )
            dFechaNac      := TEMP->FECH_NAC
            cSexo          := IIf( TEMP->_ = "M", "MASCULINO", "FEMENINO" )
         ENDIF
         TEMP->( DBCloseArea() )
      ENDIF
      IF !lEncontrado
         MsgInfo( "No se encontro el número de cédula indicado: " + FINL + cCedula )
         Limpiar_Datos()
      ENDIF
      oDlg:Update()
   ENDIF

   DBSelectArea(0)

RETURN lEncontrado

/*----------------------------------------------------------------------------*/

FUNCTION Buscar_PorNombre()
   LOCAL cSQL        := ""
   LOCAL cFileTemp   := cTempFile( GetEnv( "TEMP" ) + "\", "DBF" )
   LOCAL lEncontrado := TRUE

   cSQL := "
SELECT {static} L.TIPO_ID, L.PNOM, L.SNOM, L.PAPELL, L.SAPELL, L.DOMIC, "
   cSQL += "
L.FECH_NAC, L._, M.MUNIDESC AS MUNICIPIO, D.DEPADESC AS DEPARTAMEN "
   cSQL += "
FROM LISTA AS L "
   cSQL += "
LEFT OUTER JOIN MUNICIPIOS AS M ON L.ID_MUN=M.IDMUNICIPI "
   cSQL += "
LEFT OUTER JOIN DEPARTAMENTOS AS D ON M.DEPACODI=D.DEPACODI "
   cSQL += "
WHERE "

   IF !Empty( cNombre1 )
      cSQL += "
L.PNOM=" + Var2Str( RTrim( cNombre1 ) ) + " AND "
   ENDIF

   IF !Empty( cNombre2 )
      cSQL += "
L.SNOM=" + Var2Str( RTrim( cNombre2 ) ) + " AND "
   ENDIF

   IF !Empty( cApellido1 )
      cSQL += "
L.PAPELL=" + Var2Str( RTrim( cApellido1 ) ) + " AND "
   ENDIF

   IF !Empty( cApellido2 )
      cSQL += "
L.SAPELL=" + Var2Str( RTrim( cApellido2 ) ) + " AND "
   ENDIF

   IF Right( cSQL, 5 ) = "
AND "
      cSQL := SubStr( cSQL, 1, Len( cSQL ) - 5 )
   ENDIF

   IF ADSRunSQL( "
TEMP", cSQL )
      IF TEMP->( Eof() )
         lEncontrado := FALSE
      ELSE
         SELECT "
TEMP"
         WaitOn( "
Buscando datos..." )
         CursorWait()
         COPY TO (cFileTemp) VIA "
DBFCDX"
         CursorArrow()
         WaitOff()
      ENDIF
      TEMP->( DBCloseArea() )
      IF !lEncontrado
         MsgAlert("
No se encontro coincidencia con los datos suministrados!")
      ELSE
         USE (cFileTemp) NEW ALIAS TEMP EXCLUSIVE VIA "
DBFCDX"
         IF NetErr()
            lEncontrado := FALSE
            MsgAlert( "
Falla en apertura de archivo temporal con resultado de consulta." )
         ELSE
            INDEX ON TIPO_ID    TAG TIPO_ID    TEMPORARY
            INDEX ON DEPARTAMEN TAG DEPARTAMEN TEMPORARY
            INDEX ON MUNICIPIO  TAG MUNICIPIO  TEMPORARY
            TEMP->( OrdSetFocus( "
TIPO_ID" ), DBGoTop() )
            lEncontrado := Buscar_EnLista()
            TEMP->( DBCloseArea() )
         ENDIF
         DBDrop( cFileTemp )
         oDlg:Update()
      ENDIF
   ELSE
      lEncontrado := FALSE
   ENDIF

   DBSelectArea(0)

RETURN lEncontrado

/*----------------------------------------------------------------------------*/

FUNCTION Buscar_EnLista()
   LOCAL oDlgB, oFntB, oBrwB, oBtnOk, oBtnCancel
   LOCAL lOk := FALSE

   PRIVATE oSay, cSay := "
<>"

   DEFINE FONT oFntB NAME "
Courier New" SIZE 0, -12

   DEFINE DIALOG oDlgB NAME "
DLG_LISTA" OF oDlg ICON GetIcon() FONT oFont

   REDEFINE XBROWSE oBrwB ID 101 OF oDlgB ALIAS "
TEMP" ON DBLCLICK oBtnOk:Click() FONT oFntB

   ADD TO oBrwB DATA TEMP->TIPO_ID    TITLE "
Identificación"   SIZE 110 TAG "TIPO_ID"
   ADD TO oBrwB DATA TEMP->PNOM       TITLE "
Primer nombre"    SIZE 100
   ADD TO oBrwB DATA TEMP->SNOM       TITLE "
Segundo nombre"   SIZE 100
   ADD TO oBrwB DATA TEMP->PAPELL     TITLE "
Primer apellido"  SIZE 100
   ADD TO oBrwB DATA TEMP->SAPELL     TITLE "
Segundo apellido" SIZE 100
   ADD TO oBrwB DATA TEMP->DEPARTAMEN TITLE "
Departamento"     SIZE 100 TAG "DEPARTAMEN"
   ADD TO oBrwB DATA TEMP->MUNICIPIO  TITLE "
Municipio"        SIZE 100 TAG "MUNICIPIO"
   ADD TO oBrwB DATA TEMP->DOMIC      TITLE "
Domicilio"        SIZE 450

   WITH OBJECT oBrwB
      :SetRdd()
      :MyConfig()
      :nHeaderHeight   := 25
      :lHScroll        := TRUE
      :lRecordSelector := FALSE
      :bSeek           := {|c| DBSeek( Upper( c ) ) }
   END

   REDEFINE SAY oSay VAR cSay ;
      ID 102 OF oDlgB ;
      COLOR CLR_BLUE ;
      UPDATE

   REDEFINE BUTTON oBtnOk ;
      ID 201 OF oDlgB ;
      ACTION ( lOk:=TRUE, oDlgB:END() )

   REDEFINE BUTTON oBtnCancel ;
      ID 202 OF oDlgB ;
      ACTION ( lOk:=FALSE, oDlgB:END() )

   ACTIVATE DIALOG oDlgB ON INIT ( oBrwB:oSeek := oSay, 1 )

   oFntB:END()

   IF lOk
      cCedula        := TEMP->TIPO_ID
      cNombre1       := TEMP->PNOM
      cNombre2       := TEMP->SNOM
      cApellido1     := TEMP->PAPELL
      cApellido2     := TEMP->SAPELL
      cDireccion     := TEMP->DOMIC
      cDepaMuni      := RTrim( TEMP->DEPARTAMEN ) + "
/" + RTrim( TEMP->MUNICIPIO )
      dFechaNac      := TEMP->FECH_NAC
      cSexo          := IIf( TEMP->_ = "
M", "MASCULINO", "FEMENINO" )
   ENDIF

RETURN lOk

/*-------------------------------------------------------------------------------------------------*/

PROCEDURE Limpiar_Datos( lFoco )

   DEFAULT lFoco := FALSE

   cCedula        := Space( 20 )
   cNombre1       := Space( 20 )
   cNombre2       := Space( 20 )
   cApellido1     := Space( 20 )
   cApellido2     := Space( 20 )
   cDireccion     := Space( 100 )
   cDepaMuni      := "
"
   dFechaNac      := CToD("
")
   cSexo          := "
N/D"

   IF lFoco
      oDlg:Update()
   ENDIF

RETURN


/*-------------------------------------------------------------------------------------------------*/

PROCEDURE Main_Finalizar()

   DBCloseAll()

RETURN

/*-------------------------------------------------------------------------------------------------*/

INIT PROCEDURE Main_Begin()

   oMutex := TMutex():Open( NIL, FALSE, "
KDSoftPadron" )

   IF oMutex:hMutex==0
      oMutex := TMutex():Create( NIL, FALSE, "
KDSoftPadron" )
   ELSE
      MsgAlert("
La aplicación esta en ejecución actualmente!")
      oMutex:Close()
      EndProgram()
   ENDIF

RETURN

/*-------------------------------------------------------------------------------------------------*/

EXIT PROCEDURE Main_End()

   IF hConexion != NIL .and. HB_IsNumeric( hConexion ) .and. hConexion > 0
      AdsDisconnect( hConexion )
      hConexion := NIL
   ENDIF

   IF oMutex != NIL
      oMutex:Release()
   ENDIF

   EndProgram()

RETURN

/*-------------------------------------------------------------------------------------------------*/

PROCEDURE MostrarCedula( cCedula )
   LOCAL cTemp := cCedula
   LOCAL oDlgMC, oFontMC

   IF Empty( cCedula )
      oClipboard:Clear()
      RETURN
   ELSE
      IF Len( AllTrim( cCedula ) ) == 14
         cTemp := SubStr( cCedula, 1, 3 ) + "
-" + SubStr( cCedula, 4, 6 ) + "-" + SubStr( cCedula, 10, 5 )
      ENDIF
      oClipboard:SetText( cTemp )
   ENDIF

   DEFINE FONT oFontMC NAME "
Courier New" SIZE 0, -26 BOLD

   DEFINE DIALOG oDlgMC NAME "
DLG_CEDULA" OF oDlg

   REDEFINE SAY PROMPT cTemp ;
      ID 101 OF oDlgMC ;
      FONT oFontMC

   REDEFINE BUTTON ;
      ID 201 OF oDlgMC ;
      ACTION oDlgMC:END()

   ACTIVATE DIALOG oDlgMC CENTER

   oFontMC:END()

RETURN

/*-------------------------------------------------------------------------------------------------*/
/*EOF*/
/*-------------------------------------------------------------------------------------------------*/
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1691
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Uso de ADS no me funciona

Postby noe aburto » Sat Sep 21, 2013 1:01 am

Ok. lo checo y te confirmo que pasa.
Gracias
Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
User avatar
noe aburto
 
Posts: 418
Joined: Wed Nov 26, 2008 6:33 pm
Location: Morelia, Mich. Mexico.

Re: Uso de ADS no me funciona

Postby carlos vargas » Sat Sep 21, 2013 2:39 am

Noè de entrada:
Code: Select all  Expand view
RDDREGISTER("ADS",1)
ya no se usa
Code: Select all  Expand view
EXTERNAL ADS

reeplazalo por
Code: Select all  Expand view
REQUEST ADS
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1691
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Uso de ADS no me funciona

Postby George » Sat Sep 21, 2013 1:20 pm

Noe,
Trata con el siguiente codigo al principio de tu programa:
Code: Select all  Expand view
#INCLUDE "ADS.CH"
EXTERNAL ADSkeyCount, ADsKeyNo
rddRegister( "ADS", 1 )
rddsetdefault( "ADS" )
adsLocking(.f.)
ADSOpenFiles()

Code: Select all  Expand view
FUNC AdsOPenFiles()
Local lConnect2Data := .F.
/*
nDatabaseMode = 1 (ALS)   Local Database or Multi-User Peer to Peer
nDatabaseMode = 2 (ADS)   Client/Server Database
nDatabaseMode = 4 (AIS)   Internet Remote Server */


lConnect2Data := AdsConnect60( "Database Path", nDatabaseMode, "Your User Name", "Your Password", ,)
IF !lConnect2Data
     msgalert("Connection to database failed!")
ENDIF

Recuerda añadir, en el directorio de tu ejecutable los siguientes DLL:
    ACE32.DLL
    ADSLOC32.DLL

Te recomiendo que diseñes la database usando ARC32.
Para mayor informacion puedes visitar el siguiente link:
http://devzone.advantagedatabase.com/dz ... aspx?key=1

Saludos,

George
George
 
Posts: 724
Joined: Tue Oct 18, 2005 6:49 pm

Re: Uso de ADS no me funciona

Postby noe aburto » Sat Sep 21, 2013 10:51 pm

Gracias.
he resuelto mi problema, mi funcion ActivaRdd() queda igual, solo agregue en mi cabecera

REQUEST ADS

EXTERNAL AdsKeyNo, AdsKeyCount, AdsGetRelKeyPos, AdsSetRelKeyPos
EXTERNAL OrdKeyNo, OrdKeyCount, OrdKeyGoTo, OrdKeyRelPos

y listo.

Gracias a todos.
Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
User avatar
noe aburto
 
Posts: 418
Joined: Wed Nov 26, 2008 6:33 pm
Location: Morelia, Mich. Mexico.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 39 guests