ADO Simples e funcional no xHarbour

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

ADO Simples e funcional no xHarbour

Mensagem por Itamar M. Lins Jr. »

Exemplo de uso ADO com ADS.
É só trocar a string de conexão que vai funcionar com qualquer BD.

Saudações
Itamar M. Lins Jr.

Código: Selecionar todos

#INCLUDE "ADO.CH"
#INCLUDE "inkey.CH"

FUNCTION Main()

    LOCAL oConexionAdoADS := TOLEAUTO():New("adodb.connection")
    PRIVATE oRecordsetADS := TOLEAUTO():New("adodb.recordset")

    /* connecting with  ADS */
    oConexionAdoADS:Open("Provider=Advantage.OLEDB.1;User ID=adssys;Data 
Source=c:\fwapps\klm\agentperformance.add;Persist Security 
Info=False;ServerType=ADS_LOCAL_SERVER")

    /* Configuring a cursor and Opening a DBF table using ADO */
    oRecordSetADS:LockType := adLockOptimistic
    oRecordSetADS:CursorType := adOpenKeyset
    oRecordSetADS:ActiveConnection(oConexionAdoADS)
    oRecordSetADS:Source := "Select * from b3000 order by field1"
    oRecordSetADS:Open()

    /* Browsing. note: yo have to rewrite some TBrowse stuff in order
       to make the movement over the recordset */ 

/* create the browse as usual */
    oBrw := TBrowseNew(0,0,24,79)

/* redefine the top, bottom and skip properties */
    oBrw:goBottomBlock := {|| oRecordSetADS:MoveLast()}
    oBrw:goTopBlock := {|| oRecordSetADS:MoveFirst()}
    oBrw:SkipBlock := {|nSkip| RecordSetSkip(nSkip)}

/* Add the TBColumn Objects as usual, but the data to display will be
    a recordset:field(n):value value */
    oBrw:AddColumn(TBColumnNew("iatacode",{|| 
oRecordSet:Fields(0):value}))
    oBrw:AddColumn(TBColumnNew("Agentype",{|| oRecordSet:Fields(1):value}))
    oBrw:AddColumn(TBColumnNew("Channelcod",{|| 
oRecordSet:Fields(2):value}))
    oBrw:AddColumn(TBColumnNew("Agentname",{|| oRecordSet:Fields(3):value}))
    oBrw:AddColumn(TBColumnNew("Citycode",{|| oRecordSet:Fields(4):value}))
    oBrw:AddColumn(TBColumnNew("Areacode",{|| oRecordSet:Fields(5):value}))

/* TBrowse event loop is built as usual */ 
    cont := .T.
    DO WHILE cont
       oBrw:FORCESTABLE()
       tecla := INKEY()
       IF oBrw:HITBOTTOM .OR. oBrw:HITTOP
          ?? CHR(7)
          oBrw:HITBOTTOM := .F.
          oBrw:HITTOP := .F.
       ENDIF
       DO CASE
          CASE tecla = K_ESC
             cont := .F.
          CASE tecla = K_UP
             oBrw:REFRESHCURRENT()
             oBrw:UP()
          CASE tecla = K_DOWN
             obrw:REFRESHCURRENT()
             obrw:DOWN()
          CASE tecla = K_PGUP
             obrw:REFRESHCURRENT()
             obrw:PAGEUP()
          CASE tecla = K_LEFT
             obrw:REFRESHCURRENT()
             obrw:LEFT()
          CASE tecla = K_RIGHT
             obrw:REFRESHCURRENT()
             obrw:RIGHT()
          CASE tecla = K_PGDN
             obrw:REFRESHCURRENT()
             obrw:PAGEDOWN()
          CASE tecla = K_CTRL_HOME
             obrw:REFRESHCURENT()
             obrw:GOTOP()
          CASE tecla = K_CTRL_END
             obrw:REFRESHCURRENT()
             obrw:GOBOTTOM()
       ENDCASE
    ENDDO
RETURN (.T.)

/* this function is used to "skip" records over the browse whenever a
   move key is pressed, it works as a normal Tbrowse's skipper function 
    but is adapted to use recordsets instead of arrays or DBF records by 
calling the recordset movement data and methods. */
Static Function RecordSetSkip(nSkip)
     LOCAL nRec := oRecordSet:AbsolutePosition
     oRecordSet:Move( nSkip )
     IF oRecordSet:EOF; oRecordSet:MoveLast(); ENDIF
     IF oRecordSet:BOF; oRecordSet:MoveFirst(); ENDIF
Return (oRecordSet:AbsolutePosition - nRec)

Arquivo ado.ch

Código: Selecionar todos

*--------------------------------------------------------------------
* Microsoft ADO
*
* Copyright (c) 2005-2006 CiberTec
*
*
*
* Archivo de cabecera para usar ADO con xHarbour
*
*--------------------------------------------------------------------

*---- CursorTypeEnum Values ----
#DEFINE adOpenForwardOnly 0
#DEFINE adOpenKeyset      1
#DEFINE adOpenDynamic     2
#DEFINE adOpenStatic      3

*---- CursorOptionEnum Values ----
#DEFINE adHoldRecords    0x00000100
#DEFINE adMovePrevious   0x00000200
#DEFINE adAddNew         0x01000400
#DEFINE adDelete         0x01000800
#DEFINE adUpdate         0x01008000
#DEFINE adBookmark       0x00002000
#DEFINE adApproxPosition 0x00004000
#DEFINE adUpdateBatch    0x00010000
#DEFINE adResync         0x00020000
#DEFINE adNotify         0x00040000
#DEFINE adFind           0x00080000
#DEFINE adSeek           0x00400000
#DEFINE adIndex          0x00800000

*---- LockTypeEnum Values ----
#DEFINE adLockReadOnly        1
#DEFINE adLockPessimistic     2
#DEFINE adLockOptimistic      3
#DEFINE adLockBatchOptimistic 4

*---- ExecuteOptionEnum Values ----
#DEFINE adAsyncExecute          0x00000010
#DEFINE adAsyncFetch            0x00000020
#DEFINE adAsyncFetchNonBlocking 0x00000040
#DEFINE adExecuteNoRecords      0x00000080
#DEFINE adExecuteStream         0x00000400

*---- ConnectOptionEnum Values ----
#DEFINE adAsyncConnect   0x00000010

*---- ObjectStateEnum Values ----
#DEFINE adStateClosed     0x00000000
#DEFINE adStateOpen       0x00000001
#DEFINE adStateConnecting 0x00000002
#DEFINE adStateExecuting  0x00000004
#DEFINE adStateFetching   0x00000008

*---- CursorLocationEnum Values ----
#DEFINE adUseServer   2
#DEFINE adUseClient   3

*---- DataTypeEnum Values ----
#DEFINE adEmpty            0
#DEFINE adTinyInt          16
#DEFINE adSmallInt         2
#DEFINE adInteger          3
#DEFINE adBigInt           20
#DEFINE adUnsignedTinyInt  17
#DEFINE adUnsignedSmallInt 18
#DEFINE adUnsignedInt      19
#DEFINE adUnsignedBigInt   21
#DEFINE adSingle           4
#DEFINE adDouble           5
#DEFINE adCurrency         6
#DEFINE adDecimal          14
#DEFINE adNumeric          131
#DEFINE adBoolean          11
#DEFINE adError            10
#DEFINE adUserDefined      132
#DEFINE adVariant          12
#DEFINE adIDispatch        9
#DEFINE adIUnknown         13
#DEFINE adGUID             72
#DEFINE adDate             7
#DEFINE adDBDate           133
#DEFINE adDBTime           134
#DEFINE adDBTimeStamp      135
#DEFINE adBSTR             8
#DEFINE adChar             129
#DEFINE adVarChar          200
#DEFINE adLongVarChar      201
#DEFINE adWChar            130
#DEFINE adVarWChar         202
#DEFINE adLongVarWChar     203
#DEFINE adBinary           128
#DEFINE adVarBinary        204
#DEFINE adLongVarBinary    205
#DEFINE adChapter          136
#DEFINE adFileTime         64
#DEFINE adPropVariant      138
#DEFINE adVarNumeric       139
#DEFINE adArray            0x2000

*---- FieldAttributeEnum Values ----
#DEFINE adFldMayDefer   0x00000002
#DEFINE adFldUpdatable   0x00000004
#DEFINE adFldUnknownUpdatable   0x00000008
#DEFINE adFldFixed   0x00000010
#DEFINE adFldIsNullable   0x00000020
#DEFINE adFldMayBeNull   0x00000040
#DEFINE adFldLong   0x00000080
#DEFINE adFldRowID   0x00000100
#DEFINE adFldRowVersion   0x00000200
#DEFINE adFldCacheDeferred   0x00001000
#DEFINE adFldIsChapter   0x00002000
#DEFINE adFldNegativeScale   0x00004000
#DEFINE adFldKeyColumn   0x00008000
#DEFINE adFldIsRowURL   0x00010000
#DEFINE adFldIsDefaultStream   0x00020000
#DEFINE adFldIsCollection   0x00040000

*---- EditModeEnum Values ----
#DEFINE adEditNone   0x0000
#DEFINE adEditInProgress   0x0001
#DEFINE adEditAdd   0x0002
#DEFINE adEditDelete   0x0004

*---- RecordStatusEnum Values ----
#DEFINE adRecOK   0x0000000
#DEFINE adRecNew   0x0000001
#DEFINE adRecModified   0x0000002
#DEFINE adRecDeleted   0x0000004
#DEFINE adRecUnmodified   0x0000008
#DEFINE adRecInvalid              0x0000010
#DEFINE adRecMultipleChanges      0x0000040
#DEFINE adRecPendingChanges       0x0000080
#DEFINE adRecCanceled             0x0000100
#DEFINE adRecCantRelease          0x0000400
#DEFINE adRecConcurrencyViolation 0x0000800
#DEFINE adRecIntegrityViolation   0x0001000
#DEFINE adRecMaxChangesExceeded   0x0002000
#DEFINE adRecObjectOpen           0x0004000
#DEFINE adRecOutOfMemory          0x0008000
#DEFINE adRecPermissionDenied     0x0010000
#DEFINE adRecSchemaViolation      0x0020000
#DEFINE adRecDBDeleted            0x0040000

*---- GetRowsOptionEnum Values ----
#DEFINE adGetRowsRest   -1

*---- PositionEnum Values ----
#DEFINE adPosUnknown   -1
#DEFINE adPosBOF   -2
#DEFINE adPosEOF   -3

*---- BookmarkEnum Values ----
#DEFINE adBookmarkCurrent   0
#DEFINE adBookmarkFirst   1
#DEFINE adBookmarkLast   2

*---- MarshalOptionsEnum Values ----
#DEFINE adMarshalAll   0
#DEFINE adMarshalModifiedOnly   1

*---- AffectEnum Values ----
#DEFINE adAffectCurrent   1
#DEFINE adAffectGroup   2
#DEFINE adAffectAllChapters   4

*---- ResyncEnum Values ----
#DEFINE adResyncUnderlyingValues   1
#DEFINE adResyncAllValues   2

*---- CompareEnum Values ----
#DEFINE adCompareLessThan   0
#DEFINE adCompareEqual   1
#DEFINE adCompareGreaterThan   2
#DEFINE adCompareNotEqual   3
#DEFINE adCompareNotComparable   4

*---- FilterGroupEnum Values ----
#DEFINE adFilterNone   0
#DEFINE adFilterPendingRecords   1
#DEFINE adFilterAffectedRecords   2
#DEFINE adFilterFetchedRecords   3
#DEFINE adFilterConflictingRecords   5

*---- SearchDirectionEnum Values ----
#DEFINE adSearchForward   1
#DEFINE adSearchBackward   -1

*---- PersistFormatEnum Values ----
#DEFINE adPersistADTG   0
#DEFINE adPersistXML   1

*---- StringFormatEnum Values ----
#DEFINE adClipString   2

*---- ConnectPromptEnum Values ----
#DEFINE adPromptAlways   1
#DEFINE adPromptComplete   2
#DEFINE adPromptCompleteRequired   3
#DEFINE adPromptNever   4

*---- ConnectModeEnum Values ----
#DEFINE adModeUnknown   0
#DEFINE adModeRead   1
#DEFINE adModeWrite   2
#DEFINE adModeReadWrite   3
#DEFINE adModeShareDenyRead   4
#DEFINE adModeShareDenyWrite   8
#DEFINE adModeShareExclusive   0xc
#DEFINE adModeShareDenyNone   0x10
#DEFINE adModeRecursive   0x400000

*---- RecordCreateOptionsEnum Values ----
#DEFINE adCreateCollection   0x00002000
#DEFINE adCreateStructDoc   0x80000000
#DEFINE adCreateNonCollection   0x00000000
#DEFINE adOpenIfExists   0x02000000
#DEFINE adCreateOverwrite   0x04000000
#DEFINE adFailIfNotExists   -1

*---- RecordOpenOptionsEnum Values ----
#DEFINE adOpenRecordUnspecified   -1
#DEFINE adOpenOutput   0x00800000
#DEFINE adOpenAsync   0x00001000
#DEFINE adDelayFetchStream   0x00004000
#DEFINE adDelayFetchFields   0x00008000
#DEFINE adOpenExecuteCommand   0x00010000

*---- IsolationLevelEnum Values ----
#DEFINE adXactUnspecified   0xffffffff
#DEFINE adXactChaos   0x00000010
#DEFINE adXactReadUncommitted   0x00000100
#DEFINE adXactBrowse   0x00000100
#DEFINE adXactCursorStability   0x00001000
#DEFINE adXactReadCommitted   0x00001000
#DEFINE adXactRepeatableRead   0x00010000
#DEFINE adXactSerializable   0x00100000
#DEFINE adXactIsolated   0x00100000

*---- XactAttributeEnum Values ----
#DEFINE adXactCommitRetaining   0x00020000
#DEFINE adXactAbortRetaining   0x00040000

*---- PropertyAttributesEnum Values ----
#DEFINE adPropNotSupported   0x0000
#DEFINE adPropRequired   0x0001
#DEFINE adPropOptional   0x0002
#DEFINE adPropRead   0x0200
#DEFINE adPropWrite   0x0400

*---- ErrorValueEnum Values ----
#DEFINE adErrProviderFailed   0xbb8
#DEFINE adErrInvalidArgument   0xbb9
#DEFINE adErrOpeningFile   0xbba
#DEFINE adErrReadFile   0xbbb
#DEFINE adErrWriteFile   0xbbc
#DEFINE adErrNoCurrentRecord   0xbcd
#DEFINE adErrIllegalOperation   0xc93
#DEFINE adErrCantChangeProvider   0xc94
#DEFINE adErrInTransaction   0xcae
#DEFINE adErrFeatureNotAvailable   0xcb3
#DEFINE adErrItemNotFound   0xcc1
#DEFINE adErrObjectInCollection   0xd27
#DEFINE adErrObjectNotSet   0xd5c
#DEFINE adErrDataConversion   0xd5d
#DEFINE adErrObjectClosed   0xe78
#DEFINE adErrObjectOpen   0xe79
#DEFINE adErrProviderNotFound   0xe7a
#DEFINE adErrBoundToCommand   0xe7b
#DEFINE adErrInvalidParamInfo   0xe7c
#DEFINE adErrInvalidConnection   0xe7d
#DEFINE adErrNotReentrant   0xe7e
#DEFINE adErrStillExecuting   0xe7f
#DEFINE adErrOperationCancelled   0xe80
#DEFINE adErrStillConnecting   0xe81
#DEFINE adErrInvalidTransaction   0xe82
#DEFINE adErrUnsafeOperation   0xe84
#DEFINE adwrnSecurityDialog   0xe85
#DEFINE adwrnSecurityDialogHeader   0xe86
#DEFINE adErrIntegrityViolation   0xe87
#DEFINE adErrPermissionDenied   0xe88
#DEFINE adErrDataOverflow   0xe89
#DEFINE adErrSchemaViolation   0xe8a
#DEFINE adErrSignMismatch   0xe8b
#DEFINE adErrCantConvertvalue   0xe8c
#DEFINE adErrCantCreate   0xe8d
#DEFINE adErrColumnNotOnThisRow   0xe8e
#DEFINE adErrURLIntegrViolSetColumns   0xe8f
#DEFINE adErrURLDoesNotExist   0xe8f
#DEFINE adErrTreePermissionDenied   0xe90
#DEFINE adErrInvalidURL   0xe91
#DEFINE adErrResourceLocked   0xe92
#DEFINE adErrResourceExists   0xe93
#DEFINE adErrCannotComplete   0xe94
#DEFINE adErrVolumeNotFound   0xe95
#DEFINE adErrOutOfSpace   0xe96
#DEFINE adErrResourceOutOfScope   0xe97
#DEFINE adErrUnavailable             0xe98
#DEFINE adErrURLNamedRowDoesNotExist 0xe99
#DEFINE adErrDelResOutOfScope        0xe9a
#DEFINE adErrPropInvalidColumn       0xe9b
#DEFINE adErrPropInvalidOption       0xe9c
#DEFINE adErrPropInvalidValue        0xe9d
#DEFINE adErrPropConflicting         0xe9e
#DEFINE adErrPropNotAllSettable      0xe9f
#DEFINE adErrPropNotSet              0xea0
#DEFINE adErrPropNotSettable         0xea1
#DEFINE adErrPropNotSupported        0xea2
#DEFINE adErrCatalogNotSet           0xea3
#DEFINE adErrCantChangeConnection    0xea4
#DEFINE adErrFieldsUpdateFailed      0xea5
#DEFINE adErrDenyNotSupported        0xea6
#DEFINE adErrDenyTypeNotSupported    0xea7
#DEFINE adErrProviderNotSpecified    0xea9
#DEFINE adErrConnectionStringTooLong 0xeaa

*---- ParameterAttributesEnum Values ----
#DEFINE adParamSigned   0x0010
#DEFINE adParamNullable   0x0040
#DEFINE adParamLong   0x0080

*---- ParameterDirectionEnum Values ----
#DEFINE adParamUnknown   0x0000
#DEFINE adParamInput   0x0001
#DEFINE adParamOutput   0x0002
#DEFINE adParamInputOutput   0x0003
#DEFINE adParamReturnValue   0x0004

*---- CommandTypeEnum Values ----
#DEFINE adCmdUnknown   0x0008
#DEFINE adCmdText   0x0001
#DEFINE adCmdTable   0x0002
#DEFINE adCmdStoredProc   0x0004
#DEFINE adCmdFile   0x0100
#DEFINE adCmdTableDirect   0x0200

*---- EventStatusEnum Values ----
#DEFINE adStatusOK   0x0000001
#DEFINE adStatusErrorsOccurred   0x0000002
#DEFINE adStatusCantDeny   0x0000003
#DEFINE adStatusCancel   0x0000004
#DEFINE adStatusUnwantedEvent   0x0000005

*---- EventReasonEnum Values ----
#DEFINE adRsnAddNew   1
#DEFINE adRsnDelete   2
#DEFINE adRsnUpdate   3
#DEFINE adRsnUndoUpdate   4
#DEFINE adRsnUndoAddNew   5
#DEFINE adRsnUndoDelete   6
#DEFINE adRsnRequery   7
#DEFINE adRsnResynch   8
#DEFINE adRsnClose   9
#DEFINE adRsnMove   10
#DEFINE adRsnFirstChange   11
#DEFINE adRsnMoveFirst   12
#DEFINE adRsnMoveNext   13
#DEFINE adRsnMovePrevious   14
#DEFINE adRsnMoveLast   15

*---- SchemaEnum Values ----
#DEFINE adSchemaProviderSpecific   -1
#DEFINE adSchemaAsserts   0
#DEFINE adSchemaCatalogs   1
#DEFINE adSchemaCharacterSets   2
#DEFINE adSchemaCollations   3
#DEFINE adSchemaColumns   4
#DEFINE adSchemaCheck#DEFINEraints   5
#DEFINE adSchema#DEFINEraintColumnUsage   6
#DEFINE adSchema#DEFINEraintTableUsage   7
#DEFINE adSchemaKeyColumnUsage   8
#DEFINE adSchemaReferential#DEFINEraints   9
#DEFINE adSchemaTable#DEFINEraints   10
#DEFINE adSchemaColumnsDomainUsage   11
#DEFINE adSchemaIndexes   12
#DEFINE adSchemaColumnPrivileges   13
#DEFINE adSchemaTablePrivileges   14
#DEFINE adSchemaUsagePrivileges   15
#DEFINE adSchemaProcedures   16
#DEFINE adSchemaSchemata   17
#DEFINE adSchemaSQLLanguages   18
#DEFINE adSchemaStatistics   19
#DEFINE adSchemaTables   20
#DEFINE adSchemaTranslations   21
#DEFINE adSchemaProviderTypes   22
#DEFINE adSchemaViews   23
#DEFINE adSchemaViewColumnUsage   24
#DEFINE adSchemaViewTableUsage   25
#DEFINE adSchemaProcedureParameters   26
#DEFINE adSchemaForeignKeys   27
#DEFINE adSchemaPrimaryKeys   28
#DEFINE adSchemaProcedureColumns   29
#DEFINE adSchemaDBInfoKeywords   30
#DEFINE adSchemaDBInfoLiterals   31
#DEFINE adSchemaCubes   32
#DEFINE adSchemaDimensions   33
#DEFINE adSchemaHierarchies   34
#DEFINE adSchemaLevels   35
#DEFINE adSchemaMeasures   36
#DEFINE adSchemaProperties   37
#DEFINE adSchemaMembers   38
#DEFINE adSchemaTrustees   39
#DEFINE adSchemaFunctions   40
#DEFINE adSchemaActions   41
#DEFINE adSchemaCommands   42
#DEFINE adSchemaSets   43

*---- FieldStatusEnum Values ----
#DEFINE adFieldOK   0
#DEFINE adFieldCantConvertValue   2
#DEFINE adFieldIsNull   3
#DEFINE adFieldTruncated   4
#DEFINE adFieldSignMismatch   5
#DEFINE adFieldDataOverflow   6
#DEFINE adFieldCantCreate   7
#DEFINE adFieldUnavailable   8
#DEFINE adFieldPermissionDenied   9
#DEFINE adFieldIntegrityViolation   10
#DEFINE adFieldSchemaViolation   11
#DEFINE adFieldBadStatus   12
#DEFINE adFieldDefault   13
#DEFINE adFieldIgnore   15
#DEFINE adFieldDoesNotExist   16
#DEFINE adFieldInvalidURL   17
#DEFINE adFieldResourceLocked   18
#DEFINE adFieldResourceExists   19
#DEFINE adFieldCannotComplete   20
#DEFINE adFieldVolumeNotFound   21
#DEFINE adFieldOutOfSpace   22
#DEFINE adFieldCannotDeleteSource   23
#DEFINE adFieldReadOnly   24
#DEFINE adFieldResourceOutOfScope   25
#DEFINE adFieldAlreadyExists   26
#DEFINE adFieldPendingInsert   0x10000
#DEFINE adFieldPendingDelete   0x20000
#DEFINE adFieldPendingChange   0x40000
#DEFINE adFieldPendingUnknown   0x80000
#DEFINE adFieldPendingUnknownDelete   0x100000

*---- SeekEnum Values ----
#DEFINE adSeekFirstEQ   0x1
#DEFINE adSeekLastEQ   0x2
#DEFINE adSeekAfterEQ   0x4
#DEFINE adSeekAfter   0x8
#DEFINE adSeekBeforeEQ   0x10
#DEFINE adSeekBefore   0x20

*---- ADCPROP_UPDATECRITERIA_ENUM Values ----
#DEFINE adCriteriaKey   0
#DEFINE adCriteriaAllCols   1
#DEFINE adCriteriaUpdCols   2
#DEFINE adCriteriaTimeStamp   3

*---- ADCPROP_ASYNCTHREADPRIORITY_ENUM Values ----
#DEFINE adPriorityLowest   1
#DEFINE adPriorityBelowNormal   2
#DEFINE adPriorityNormal   3
#DEFINE adPriorityAboveNormal   4
#DEFINE adPriorityHighest   5

*---- ADCPROP_AUTORECALC_ENUM Values ----
#DEFINE adRecalcUpFront   0
#DEFINE adRecalcAlways    1

*---- ADCPROP_UPDATERESYNC_ENUM Values ----
#DEFINE adResyncNone          0
#DEFINE adResyncAutoIncrement 1
#DEFINE adResyncConflicts     2
#DEFINE adResyncUpdates       4
#DEFINE adResyncInserts       8
#DEFINE adResyncAll          15

*---- MoveRecordOptionsEnum Values ----
#DEFINE adMoveUnspecified    -1
#DEFINE adMoveOverWrite       1
#DEFINE adMoveDontUpdateLinks 2
#DEFINE adMoveAllowEmulation  4

*---- CopyRecordOptionsEnum Values ----
#DEFINE adCopyUnspecified   -1
#DEFINE adCopyOverWrite      1
#DEFINE adCopyAllowEmulation 4
#DEFINE adCopyNonRecursive   2

*---- StreamTypeEnum Values ----
#DEFINE adTypeBinary 1
#DEFINE adTypeText   2

*---- LineSeparatorEnum Values ----
#DEFINE adLF   10
#DEFINE adCR   13
#DEFINE adCRLF -1

*---- StreamOpenOptionsEnum Values ----
#DEFINE adOpenStreamUnspecified -1
#DEFINE adOpenStreamAsync        1
#DEFINE adOpenStreamFromRecord   4

*---- StreamWriteEnum Values ----
#DEFINE adWriteChar   0
#DEFINE adWriteLine   1

*---- SaveOptionsEnum Values ----
#DEFINE adSaveCreateNotExist  1
#DEFINE adSaveCreateOverWrite 2

*---- FieldEnum Values ----
#DEFINE adDefaultStream -1
#DEFINE adRecordURL     -2

*---- StreamReadEnum Values ----
#DEFINE adReadAll  -1
#DEFINE adReadLine -2

*---- RecordTypeEnum Values ----
#DEFINE adSimpleRecord     0
#DEFINE adCollectionRecord 1
#DEFINE adStructDoc        2

mmaciel11
Usuário Nível 2
Usuário Nível 2
Mensagens: 69
Registrado em: 23 Mar 2006 11:16
Localização: sao luis
Contato:

Re: ADO SIMPLES E FUNCIONAL NO XHARBOUR

Mensagem por mmaciel11 »

Bom dia


amigao estou precisando urgente acessar firebird arquivo GDB, no momento trab com xharbour + minigui ..


vc poderia me ajudar ???


desde ja agradeço


mmaciel11@hotmail.com
HBMake v1.55 - xHarbour Make
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: ADO Simples e funcional no xHarbour

Mensagem por gvc »

Firebird não é minha praia, mas parece que o xHarbour já tem a biblioteca de acesso as FB.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Responder