HBSQL (Sql Tool)

Fórum sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

Ranier
Usuário Nível 2
Usuário Nível 2
Mensagens: 80
Registrado em: 02 Abr 2019 09:01
Localização: Goiania/Goias

HBSQL (Sql Tool)

Mensagem por Ranier »

rochinha escreveu:quando eu estava criando a ADOxB para manusear arquivos via ADO me deparei com esta questão de usar áreas e selects sem usar números engessados."
Interessante essa discursão, a respeito do comando/função select, mas com relação a HBDBD e ao utilitário HBSQL, não têm qualquer relação.
A HBDBD não usa qualquer recurso do subsistema RDD, por consequência, não usa "workarea", então ambos select comando/função select, não irão funcionar e não são necessários.
Isso faz com que o próprio executável seja menor, haja visto, que faz "linkedição" da hbnulrdd.lib, retirando todo o subsistema RDD.
JoséQuintas escreveu:Ou, se possível, trocar tudo por uma única linha:

Código: Selecionar todos

ADO EXECUTE "CREATE TABLE IF NOT EXISTS JPREGUSO ( ..."
Não tenho certeza 100%, mas não são todos os SGDB que suportam "IF NOT EXISTS", de qualquer forma, acho a solução do Rochinha melhor, na medida que pesquisar pela existência da tabela é uma "query" mais leve e rápida, enquanto que o SGDB terá que compilar "CREATE TABLE" e fazer a pesquisa antes de executar.
O problema com pesquisar a tabela antes é que são necessários duas "rounds trips", ou seja, duas viagens completas ao servidor, se a latência for grande, demora mais, com certeza.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

HBSQL (Sql Tool)

Mensagem por JoséQuintas »

Ranier escreveu:Interessante essa discursão, a respeito do comando/função select, mas com relação a HBDBD e ao utilitário HBSQL, não têm qualquer relação.
No final, eu apenas quis direcionar o aviso sobre espaço entre parêntesis e citei o select como exemplo.
E esse exemplo acabou gerando a discussão sobre select.
E depois mudou para o ADO.
E nada disso tem a ver com tópico sobre a FERRAMENTA em HBDBD.
Acabou misturando 3 assuntos, e pode ter complicado pra separar.
Talvez separar a partir dessa mensagem onde usei o select de exemplo, para um tópico "SELECT e Select()"
Ela é a primeira que não tem a ver com o tópico, e que começa a nova discussão sobre select.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

HBSQL (Sql Tool)

Mensagem por rochinha »

Amiguinhos,

Vejam que não quis mudar o direcionamento para ADO mas somente mostrar que no caso da ADO aproximei e minimizei o código para que ele ficasse o mais compativel com os comandos que usamos no RDD nativo sendo que a diferença seria somente a adição de ADO no inicio da sintaxe além de apresentar uma primeira dificuldade que tive ao usar workáreas.

Talvez minha dificuldade e solução abrissem leques de outras soluções para o motor em questão.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Ranier
Usuário Nível 2
Usuário Nível 2
Mensagens: 80
Registrado em: 02 Abr 2019 09:01
Localização: Goiania/Goias

HBSQL (Sql Tool)

Mensagem por Ranier »

De maneira alguma está atrapalhando, seus comentários são sempre bem vindos.

Com relação a sintaxe da HBDBD, será criada uma Classe para facilitar o uso, compatível com ADO, espero que 100%, assim não existirá dificuldades para escrever um só código que rode nas duas bibliotecas.
Ranier
Usuário Nível 2
Usuário Nível 2
Mensagens: 80
Registrado em: 02 Abr 2019 09:01
Localização: Goiania/Goias

HBSQL (Sql Tool)

Mensagem por Ranier »

Nova versão do utilitário HBSQL, agora com fontes modificados para usar a Classe TConnection da HBDBD.

Novo link:
https://drive.google.com/open?id=1aNE_I ... 4V9XrHXMvb

Nova versão da biblioteca HBDBD.
Agora com suporte a Classe TConnection.

Função ConnectionNew, cria um object da Classe TConnection
Sintaxe: ConnectionNew( nDRIVER, sCONN )
Retorno: Harbour Object (Class TConnection)

Método Connection(), conecta com o Banco de Dados, de acordo com o DRIVER solicitado e a string de conexão sCONN
Sintaxe: oCONN:Connection()
Retorno: Harbour Integer (0 se OK, > 1 erro)

Método Query(), efetua uma "query SQL" que retorna um DataSet de acordo com a SQL informada
Sintaxe: oCONN:Query( sSQL )
Retorno: Harbour Logical (HB_TRUE se retornou um DataSet, HB_FALSE se falhou!)

Método Exec(), efetua um "comando SQL", de acordo com a sSQL informada
Sintaxe: oCONN:Exec( sSQL, @nROWS )
Retorno: Harbour Integer (0 se OK, > 1 erro)
Parâmetros: nROWS, contém o número de linhas afetadas pelo comando SQL

Método DatasetArray(), cria e retorna um array contendo todo o DataSet
Sintaxe: oCONN:DatasetArray()
Retorno: Harbour Array (vazia se Dataset falhou)

Método FieldsArray(), cria e retorna um array contendo todos os campos presentes no DataSet
Sintaxe: oCONN:FieldsArray()
Retorno: Harbour Array (vazia se Dataset falhou)

Método StrError(), retorna uma string contendo o ultimo erro da conexão
Sintaxe: oCONN:StrError()
Retorno: Harbour String

A Classe TConnection terá total compatibilidade com a Classe TADOClass.
Ranier
Usuário Nível 2
Usuário Nível 2
Mensagens: 80
Registrado em: 02 Abr 2019 09:01
Localização: Goiania/Goias

HBSQL (Sql Tool)

Mensagem por Ranier »

Nova versão do utilitário HBSQL, agora com fontes modificados para usar as Classes TConnection e TDataset da HBDBD.

Novo link:
https://drive.google.com/open?id=1XbBrE ... cWKV7ewMkF

Trial da biblioteca HBDBD, disponibilizada.
Disponível para testes em 32 bits Windows.
hbdbd.lib para compiladores Microsoft
libhbdbd.a para Mingw

Incluída também documentação com os métodos disponíveis para o uso:
docs\tconnection.txt
docs\tdataset.txt
docs\tprepare.txt
docs\trecord.txt
Ranier
Usuário Nível 2
Usuário Nível 2
Mensagens: 80
Registrado em: 02 Abr 2019 09:01
Localização: Goiania/Goias

HBSQL (Sql Tool)

Mensagem por Ranier »

Nova versão do utilitário HBSQL, agora com fontes modificados para usar a RDD ARRAYRDD.
Dessa forma é possível, editar e usar os dados com todos os comandos DBF, sem precisar modificar fontes de relatórios, por exemplo.

Código: Selecionar todos

oDS:Query( "SELECT Nome, Cidade FROM Clientes;" )
aFIELDS := oDS:FieldsArray()
aROWS  := oDS:DatasetArray()
oDS:Close()
dbCreate( "query.dbf", aFIELDS, "ARRAYRDD", .T., "query" )
hb_SetArrayRdd( aROWS )
While( !Eof() )
    ? "Nome: " + FIELD->NOME
    ? "Cidade: " + FIELD->CIDADE
    DBSkip()
End
DBCloseArea()
O melhor de dois mundos, poder usar SGDB e sem precisar modificar quase nada dos fontes atuais, que ainda usam os comandos para DBF.

Novo link:
https://drive.google.com/open?id=1Gok25 ... EpQn0hdKYE

Trial da biblioteca HBDBD, disponibilizada.
Disponível para testes em 32 bits Windows.
hbdbd.lib para compiladores Microsoft
libhbdbd.a para Mingw

Incluída também documentação com os métodos disponíveis para o uso:
docs\tconnection.txt
docs\tdataset.txt
docs\tprepare.txt
docs\trecord.txt
Marcos Kieron
Usuário Nível 2
Usuário Nível 2
Mensagens: 72
Registrado em: 14 Jan 2020 10:29
Localização: São Paulo/SP

HBSQL (Sql Tool)

Mensagem por Marcos Kieron »

Amigo, onde estão os fontes para eu compilar isso no meu ambiente?
Quero usar no Linux
Ranier
Usuário Nível 2
Usuário Nível 2
Mensagens: 80
Registrado em: 02 Abr 2019 09:01
Localização: Goiania/Goias

HBSQL (Sql Tool)

Mensagem por Ranier »

Marcos Kieron escreveu:Amigo, onde estão os fontes para eu compilar isso no meu ambiente?
Quero usar no Linux
Não estão disponíveis, esse é um projeto comercial.
Para adquirir a versão para Linux, favor entrar em contato, rc.software@hotmail.com
Marcos Kieron
Usuário Nível 2
Usuário Nível 2
Mensagens: 72
Registrado em: 14 Jan 2020 10:29
Localização: São Paulo/SP

HBSQL (Sql Tool)

Mensagem por Marcos Kieron »

OK, se eu precisar vou entrar em contato, obrigado

mas... alguém já comprou esse seu modulo?
Responder