Erro em ADORDD Harbour 3.0

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20419
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Erro em ADORDD Harbour 3.0

Mensagem por JoséQuintas »

Estou tentando usar a ADORDD do Harbour 3.0.
No uso recebo este erro:

Error BASE/1003 Variable does not exist: IDINSTANCI
Called from (b)FIELDBLOCK(0)
Called from TBROWSE:DOCONFIGURE(0)
Called from TBROWSE:STABILIZE(0)
Called from TBROWSE:FORCESTABLE(0)
Called from BROWSE(0)
Called from MAIN(14)

O nome do campo do arquivo é IDINSTANCIA, e ao que parece, o Harbour limita a 10 caracteres.
Alguma idéia diferente de modificar a estrutura da tabela?
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

Erro em ADORDD Harbour 3.0

Mensagem por dbsh »

hoje precisei trabalhar com MySQL usando a função FieldName(0, e me deparei com este problema, do campo com mais de 10 caracteres, a função tava truncando o nome, pesquisei e não achei solução rápida, bem resolvi na base da RAT=(Recurso Altamente Técnico)=Gambiarra.

Troquei todas as chamadas de FieldName() e Field() para FieldNameExt() que criei, se o Driver corrente for ADORDD chama a função ADO_FIELDNAME(), senão FieldName() do Harbour

Código: Selecionar todos

#define TESTE
//#include 'boni_cmd.ch'
#include "adordd.ch"
#define WA_RECORDSET   1

REQUEST ADORDD

#ifdef TESTE
procedure test()

USE sogec alias "empresa" VIA "ADORDD" TABLE "empresa" MYSQL ;
    FROM "127.0.0.1" USER "root" PASSWORD "root"

BoniBrowse() //Browse() modifcado

return
#endif


FUNCTION FieldNameExt( nField, nAlias )
LOCAL sRet, sAlias
LOCAL nCurrArea

DEFAULT nAlias TO Alias() //parâmetro opcional

nCurrArea := Select()
sele (nAlias)
sAlias := Alias()

IF ValType( nAlias ) = "N"
    IF nCurrArea = nAlias
        nCurrArea := 0
    ENDIF
ELSE
    nAlias := Select()
    IF nCurrArea = nAlias
        nCurrArea := 0
    ENDIF
ENDIF

IF RddName() == "ADORDD"
    sRet := ADO_FIELDNAME( nField, nAlias )
ELSE
    sRet := (sAlias)->(FieldName( nField ))
ENDIF

IF nCurrArea > 0
    DbSelectArea( nCurrArea )
ENDIF

RETURN sRet

STATIC FUNCTION ADO_FIELDNAME( nField, nAlias )
LOCAL cFieldName
LOCAL oRecordSet

DEFAULT nAlias TO Select() //parâmetro opcional

oRecordSet := USRRDD_AREADATA( nAlias )[ WA_RECORDSET ]

BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
    cFieldName := oRecordSet:Fields( nField - 1 ):Name
RECOVER
    cFieldName := ''
END SEQUENCE

RETURN cFieldName

010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8029
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 2 vezes
Curtiram: 1 vez

Erro em ADORDD Harbour 3.0

Mensagem por Itamar M. Lins Jr. »

Já tentou usar SQLMIX ?
Eu usei aqui algumas vezes com sucesso.

Código: Selecionar todos

cRdd  := RDDSETDEFAULT( "SQLMIX" )
nConn := RDDINFO( 1001, { "ODBC", "Driver={SQL Server Native Client 10.0};Server=localhost;database=LRXX;Uid=xyz;Pwd=xyz" })

DBUSEAREA( .T.,"SQLMIX", "select * from dbo.xyz", "xx" )

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

Erro em ADORDD Harbour 3.0

Mensagem por dbsh »

ainda não, foi minha primeira experiência com MySQL no Harbour, usei pela facilidade de uso, a performance é melhor?
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

Erro em ADORDD Harbour 3.0

Mensagem por dbsh »

Esqueci de dar o crédito: A função ADO_FIELDNAME() foi retirada de ADORDD.PRG, com algumas modificações.
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Responder