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>
Uso de ADS no me funciona
- noe aburto
- Posts: 418
- Joined: Wed Nov 26, 2008 6:33 pm
- Location: Morelia, Mich. Mexico.
Uso de ADS no me funciona
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
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
- carlos vargas
- Posts: 1721
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
Re: Uso de ADS no me funciona
Noé este es un programita completo que sua ads, revisalo.
tiene lo necesario para inciar con ads.
especiealmente la funcion Main_Iniciar()
tiene lo necesario para inciar con ads.
especiealmente la funcion Main_Iniciar()
Code: Select all | Expand
/*-------------------------------------------------------------------------------------------------*/
#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)
Carlos Vargas
Desde Managua, Nicaragua (CA)
- noe aburto
- Posts: 418
- Joined: Wed Nov 26, 2008 6:33 pm
- Location: Morelia, Mich. Mexico.
Re: Uso de ADS no me funciona
Ok. lo checo y te confirmo que pasa.
Gracias
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
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
- carlos vargas
- Posts: 1721
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
Re: Uso de ADS no me funciona
Noè de entrada:
ya no se usa
reeplazalo por
Code: Select all | Expand
RDDREGISTER("ADS",1)
Code: Select all | Expand
EXTERNAL ADS
reeplazalo por
Code: Select all | Expand
REQUEST ADS
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)
Re: Uso de ADS no me funciona
Noe,
Trata con el siguiente codigo al principio de tu programa:
Recuerda añadir, en el directorio de tu ejecutable los siguientes 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
Trata con el siguiente codigo al principio de tu programa:
Code: Select all | Expand
#INCLUDE "ADS.CH"
EXTERNAL ADSkeyCount, ADsKeyNo
rddRegister( "ADS", 1 )
rddsetdefault( "ADS" )
adsLocking(.f.)
ADSOpenFiles()
Code: Select all | Expand
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
- noe aburto
- Posts: 418
- Joined: Wed Nov 26, 2008 6:33 pm
- Location: Morelia, Mich. Mexico.
Re: Uso de ADS no me funciona
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.
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
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