|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Accueil → WINDEV 25 → Multilink Database by Wx Soluções - Driver Nativo para Firebird para Windev, Webdev e Windev Mobile |
Multilink Database by Wx Soluções - Driver Nativo para Firebird para Windev, Webdev e Windev Mobile |
Débuté par Boller, 24 oct. 2022 21:52 - 7 réponses |
| |
| | | |
|
| |
Membre enregistré 3 629 messages Popularité : +175 (223 votes) |
|
Posté le 24 octobre 2022 - 21:52 |
Boa tarde Pessoal,
A esplanação abaixo é o exemplo de uso do Multilink Database by Wx Soluções - Driver Nativo para Firebird para Windev, Webdev e Windev Mobile. Caso tenha interesse em adquirir o valor é de R$ 500,00 ou $ 100,00 dolares / Euros pelo telefone +55 41 99949 1800 ou pelo e-mail adrianoboller@gmail.com.
PARA PEGAR O RETORNO CONVERTA O JSON EM STRUCT USANDO ESSE UTILITARIO ONLINE DA PCSOFT
https://formation.pcscloud.net/wjson_web/FR/index.awp
DAI SÓ USAR UM LOOP E PREENCHER, VEJA O EXEMPLO 8
Exemplo 1 - Select normal
resultado is JSON
FIREBIRD_CLIENT.CONFIGURE("localhost", 3050, "SYSDBA", "masterkey", "C:\MY Projets\DB_Firebird\DB_EXEMPLO.FDB")
IF FIREBIRD_CLIENT.BEGIN_CONNECT() = True
IF FIREBIRD_CLIENT.SQL_QUERY("select * from alunos;") = True THEN resultado = FIREBIRD_CLIENT.DATA END
END
FIREBIRD_CLIENT.END_CONNECT();
Exemplo 2 - Select com filtro
resultado is JSON
nomealuno is string = "Adriano Boller"
FIREBIRD_CLIENT.CONFIGURE("localhost", 3050, "SYSDBA", "masterkey", "C:\MY Projets\DB_Firebird\DB_EXEMPLO.FDB")
IF FIREBIRD_CLIENT.BEGIN_CONNECT() = True THEN FIREBIRD_CLIENT.SET("@Nome",nomealuno) IF FIREBIRD_CLIENT.SQL_QUERY("select * from alunos where nome like @Nome;") = True THEN resultado = FIREBIRD_CLIENT.DATA END END
FIREBIRD_CLIENT.END_CONNECT();
Exemplo 3 - Insert com erro para pegar o erro do banco
resultado is JSON
nomealuno is string = "Marcos"
FIREBIRD_CLIENT.CONFIGURE("localhost", 3050, "SYSDBA", "masterkey", "C:\MY Projets\DB_Firebird\DB_EXEMPLO.FDB")
IF FIREBIRD_CLIENT.BEGIN_CONNECT() = True THEN FIREBIRD_CLIENT.SET("@Nome",nomealuno) IF FIREBIRD_CLIENT.SQL_EXEC("insert into alunos values 1(3, @Nome);") = True THEN resultado = FIREBIRD_CLIENT.DATA ELSE Info(FIREBIRD_CLIENT.MSG) END END
FIREBIRD_CLIENT.END_CONNECT();
Exemplo 4 - Insert ok
resultado is JSON
nomealuno is string = "Rafael Boller"
FIREBIRD_CLIENT.CONFIGURE("localhost", 3050, "SYSDBA", "masterkey", "C:\MY Projets\DB_Firebird\DB_EXEMPLO.FDB")
IF FIREBIRD_CLIENT.BEGIN_CONNECT() = True THEN FIREBIRD_CLIENT.SET("@Nome",nomealuno) IF FIREBIRD_CLIENT.SQL_EXEC("insert into alunos values (4, @Nome);") = True THEN resultado = FIREBIRD_CLIENT.DATA ELSE Info(FIREBIRD_CLIENT.MSG) END END
FIREBIRD_CLIENT.END_CONNECT();
Exemplo 5 - Update ok
nomealuno is string = "Juliana Boller"
FIREBIRD_CLIENT.CONFIGURE("localhost", 3050, "SYSDBA", "masterkey", "C:\MY Projets\DB_Firebird\DB_EXEMPLO.FDB")
IF FIREBIRD_CLIENT.BEGIN_CONNECT() = True THEN FIREBIRD_CLIENT.SET("@Nome",nomealuno) IF FIREBIRD_CLIENT.SQL_EXEC("update alunos set nome = @nome where aluno_id = 2;") = True THEN Info("OK") ELSE Info(FIREBIRD_CLIENT.MSG) END END
FIREBIRD_CLIENT.END_CONNECT();
Exemplo 6 - Delete ok
FIREBIRD_CLIENT.CONFIGURE("localhost", 3050, "SYSDBA", "masterkey", "C:\MY Projets\DB_Firebird\DB_EXEMPLO.FDB")
IF FIREBIRD_CLIENT.BEGIN_CONNECT() = True THEN FIREBIRD_CLIENT.SET("@id",3) IF FIREBIRD_CLIENT.SQL_EXEC("delete from alunos where aluno_id = @id;") = True THEN Info("OK") ELSE Info(FIREBIRD_CLIENT.MSG) END END
FIREBIRD_CLIENT.END_CONNECT();
Exemplo 7 - Transaction Commit / Rollback
nomealuno is string = "Alice Boller"
FIREBIRD_CLIENT.CONFIGURE("localhost", 3050, "SYSDBA", "masterkey", "C:\MY Projets\DB_Firebird\DB_EXEMPLO.FDB")
IF FIREBIRD_CLIENT.BEGIN_CONNECT() = True THEN FIREBIRD_CLIENT.BEGIN_TRANSACTION() FIREBIRD_CLIENT.SET("@Nome",nomealuno) IF FIREBIRD_CLIENT.SQL_EXEC("update alunos set nome = @nome where aluno_id = 4;") = True THEN IF FIREBIRD_CLIENT.COMMIT_TRANSACTION(False) = True // True se der erro de commit chama o rollback automaticamente IF FIREBIRD_CLIENT.COMMIT_TRANSACTION(True) = True Info("OK") ELSE FIREBIRD_CLIENT.ROLLBACK_TRANSACTION() END ELSE Info(FIREBIRD_CLIENT.MSG) END END
FIREBIRD_CLIENT.END_CONNECT();
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/Message modifié, 24 octobre 2022 - 22:00 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 629 messages Popularité : +175 (223 votes) |
|
Posté le 24 octobre 2022 - 21:57 |
EXEMPLO 8 - COM STRUCT
PARA PEGAR O RETORNO CONVERTA O JSON EM STRUCT USANDO ESSE UTILITARIO ONLINE DA PCSOFT
https://formation.pcscloud.net/wjson_web/FR/index.awp
STRESULT is Structure NOMEUSUARIO is string SENHA is string SIGLA is string BUSCAMERCADORIA is string TEMPOPESQUISA is int RELATORIOECF is string IP is string STATUS is int INATIVIDADE is int AVISABACKUP is string AVISAMINIMO is string AVISAPONTOPEDIDO is string NIVELDEPRECO is int TAMANHOFONTEF1 is int AVISAPAGAR is string AVISAPRODUCAO is string AVISAOSABERTA is string AVISAVALIDADE is string MOSTRALUCROORCAMENTO is string MOSTRAVENDAFUTURA is string VENDAAUTOMATICA is string VERIFICACANCELAMENTOCONVENIO is string ATIVO is string AVISANFS is string VENDEDORPADRAO is int END
arrResultat is array of STRESULT
STC_tarefa = "Aguarde Iniciando Importação ... DBCADUSU"
WinRedraw()
HClose(CADUSU) HCreation(CADUSU)
sFiller is string Resultado is JSON i is int nQtdeReg is int
PROGBAR_01 = 0
FIREBIRD_CLIENT.CONFIGURE("localhost", 3050, "SYSDBA", "masterkey", EDT_Banco)
IF FIREBIRD_CLIENT.BEGIN_CONNECT() = True THEN IF FIREBIRD_CLIENT.SQL_QUERY("SELECT COUNT(*) AS MAXIMO FROM DBCADUSU;") = True THEN Resultado = FIREBIRD_CLIENT.DATA nQtdeReg = Resultado[1].MAXIMO PROGBAR_01..MaxValue = nQtdeReg // QUANT DE REGISTROS DA TABELA EDT_Maximo = nQtdeReg END STC_tarefa = "Iniciando a Leitura da Tabela DBCADUSU Aguarde..." WinRedraw() IF FIREBIRD_CLIENT.SQL_QUERY("select * from DBCADUSU;") = True THEN sRetJSON is Buffer = FIREBIRD_CLIENT.DATA
Deserialize(arrResultat,sRetJSON,psdJSON)
STC_tarefa = "Gravando... Segis_ERP -> CADUSU" WinRedraw() FOR i = 1 TO nQtdeReg //Multitask(1) //Comando para dar um tempo no processamento //WAIT(10) PROGBAR_01++ EDT_Lendo = i HReset(CADUSU) CADUSU.Nome = arrResultat[i].NOMEUSUARIO IF CADUSU.Nome = "0" THEN CONTINUE END CADUSU.Apelido = arrResultat[i].NOMEUSUARIO CADUSU.Senha = arrResultat[i].SENHA CADUSU.Foto = arrResultat[i].FOTO CADUSU.CADPFL = arrResultat[i].CADPFL CADUSU.DescMax = arrResultat[i].DESCMAX sFiller = arrResultat[i].ATIVO
IF sFiller = "N" THEN CONTINUE ELSE CADUSU.Ativo = 1 END HAdd(CADUSU,hLockNo) END END END
FIREBIRD_CLIENT.END_CONNECT();
IF nQtdeReg = 0 THEN TABLE_Importa.COL_FimOK[x] = "Nenhum Registro a Importar(Tabela Vazia)" ELSE IF nQtdeReg = HRecNum(CADUSU) THEN TABLE_Importa.COL_FimOK[x] = "OK - " + HRecNum(CADUSU) + " Registros Importados" ELSE TABLE_Importa.COL_FimOK[x] ="ERRO de Importação" END END
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 629 messages Popularité : +175 (223 votes) |
|
Posté le 24 octobre 2022 - 23:23 |
Bases de dados DB2 by Multilink
Selecionar registros
resultado is JSON
SERVER is string = "LOCALHOST" USER is string = "ADRIANO" SENHA is string = "SENHASECRETA" BASE is string = "DB_BASE"
DB2_CLIENT.CONFIGURE(SERVER,USER,SENHA,BASE)
IF DB2_CLIENT.BEGIN_CONNECT() = True
IF DB2_CLIENT.SQL_QUERY("select * from alunos;") = True THEN resultado = DB2_CLIENT.DATA END
END
DB2_CLIENT.END_CONNECT();
Select com filtro protegido com not Sql Inector
resultado is JSON
SERVER is string = "LOCALHOST" USER is string = "ADRIANO" SENHA is string = "SENHASECRETA" BASE is string = "DB_BASE"
nomealuno is string = "Adriano Boller"
DB2_CLIENT.CONFIGURE(SERVER,USER,SENHA,BASE)
IF DB2_CLIENT.BEGIN_CONNECT() = True THEN DB2_CLIENT.SET("@Nome",nomealuno) IF DB2_CLIENT.SQL_QUERY("select * from alunos where nome like @Nome;") = True THEN resultado = DB2_CLIENT.DATA END END
DB2_CLIENT.END_CONNECT();
Insert com erro para dar info error
resultado is JSON
SERVER is string = "LOCALHOST" USER is string = "ADRIANO" SENHA is string = "SENHASECRETA" BASE is string = "DB_BASE"
nomealuno is string = "Adriano Boller"
//nomealuno is string = "Marcos"
DB2_CLIENT.CONFIGURE(SERVER,USER,SENHA,BASE)
IF DB2_CLIENT.BEGIN_CONNECT() = True THEN DB2_CLIENT.SET("@Nome",nomealuno) IF DB2_CLIENT.SQL_EXEC("insert into alunos values 1(3, @Nome);") = True THEN resultado = DB2_CLIENT.DATA ELSE Info(DB2_CLIENT.MSG) END END
DB2_CLIENT.END_CONNECT();
Insert ok
resultado is JSON
SERVER is string = "LOCALHOST" USER is string = "ADRIANO" SENHA is string = "SENHASECRETA" BASE is string = "DB_BASE"
//nomealuno is string = "Adriano Boller"
//nomealuno is string = "Marcos"
nomealuno is string = "Rafael Boller"
DB2_CLIENT.CONFIGURE(SERVER,USER,SENHA,BASE)
IF DB2_CLIENT.BEGIN_CONNECT() = True THEN DB2_CLIENT.SET("@Nome",nomealuno) IF DB2_CLIENT.SQL_EXEC("insert into alunos values (4, @Nome);") = True THEN resultado = DB2_CLIENT.DATA ELSE Info(DB2_CLIENT.MSG) END END
DB2_CLIENT.END_CONNECT();
Update ok
SERVER is string = "LOCALHOST" USER is string = "ADRIANO" SENHA is string = "SENHASECRETA" BASE is string = "DB_BASE"
//nomealuno is string = "Adriano Boller"
//nomealuno is string = "Marcos"
//nomealuno is string = "Rafael Boller"
nomealuno is string = "Juliana Boller"
DB2_CLIENT.CONFIGURE(SERVER,USER,SENHA,BASE)
IF DB2_CLIENT.BEGIN_CONNECT() = True THEN DB2_CLIENT.SET("@Nome",nomealuno) IF DB2_CLIENT.SQL_EXEC("update alunos set nome = @nome where aluno_id = 2;") = True THEN Info("OK") ELSE Info(DB2_CLIENT.MSG) END END
DB2_CLIENT.END_CONNECT();
Delete ok
SERVER is string = "LOCALHOST" USER is string = "ADRIANO" SENHA is string = "SENHASECRETA" BASE is string = "DB_BASE"
//nomealuno is string = "Adriano Boller"
//nomealuno is string = "Marcos"
//nomealuno is string = "Rafael Boller"
nomealuno is string = "Juliana Boller"
DB2_CLIENT.CONFIGURE(SERVER,USER,SENHA,BASE)
IF DB2_CLIENT.BEGIN_CONNECT() = True THEN DB2_CLIENT.SET("@id",3) IF DB2_CLIENT.SQL_EXEC("delete from alunos where aluno_id = @id;") = True THEN Info("OK") ELSE Info(DB2_CLIENT.MSG) END END
DB2_CLIENT.END_CONNECT();
Insert com Transaction
SERVER is string = "LOCALHOST" USER is string = "ADRIANO" SENHA is string = "SENHASECRETA" BASE is string = "DB_BASE"
//nomealuno is string = "Adriano Boller"
//nomealuno is string = "Marcos"
//nomealuno is string = "Rafael Boller"
//nomealuno is string = "Juliana Boller"
nomealuno is string = "Alice Boller"
DB2_CLIENT.CONFIGURE(SERVER,USER,SENHA,BASE)
IF DB2_CLIENT.BEGIN_CONNECT() = True THEN DB2_CLIENT.BEGIN_TRANSACTION() DB2_CLIENT.SET("@Nome",nomealuno) IF DB2_CLIENT.SQL_EXEC("update alunos set nome = @nome where aluno_id = 4;") = True THEN IF DB2_CLIENT.COMMIT_TRANSACTION(False) = True // True se der erro de commit chama o rollback automaticamente IF FIREBIRD_CLIENT.COMMIT_TRANSACTION(True) = True Info("OK") ELSE DB2_CLIENT.ROLLBACK_TRANSACTION() END ELSE Info(DB2_CLIENT.MSG) END END
DB2_CLIENT.END_CONNECT();
PARA LER O JSON CRIE ANTES UMA STRUCT IGUAL O EXEMPLO 8 COM ESSE UTUOITARIO ABAIXO
https://formation.pcscloud.net/wjson_web/FR/index.awp
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 629 messages Popularité : +175 (223 votes) |
|
Posté le 25 octobre 2022 - 18:03 |
Exemplo de uso do Multilink com DBF
// PROCEDURE Integra_OmegaPed_Local_Server()
Busca_Variaveis_BD_Server_OmegaPed()
bWFound is boolean
IF InternetConnected() = True THEN IF HOpenConnection(MyConnection_server_OmegaPed) = True THEN // Integração do Local (Omega) para Servidor OmegaPed. dsVendedor is Data Source IF HDBOpen(dsVendedor,"FoxVend",gsDirVendedor) THEN // wIndex is string = Replace(gsDirVendedor ,"DBF","CDX") // Abre o Indice do Arquivo HDBIndex(dsVendedor, "VENDEDOR.CDX", "Codigo") HReset(dsVendedor) HReadFirst(dsVendedor) WHILE HOut(dsVendedor) = False STC_Status.Caption = "Lendo Vendedor "+dsVendedor.Codigo+"-"+NoSpace(dsVendedor.Nome) IF dsVendedor.bloqueado = False THEN // Status (Ativo=Desbloqueado) HReadSeek(t012_vendedor_server,t012_vendedor,dsVendedor.Codigo,hIdentical) bWFound = HFound(t012_vendedor_server) t012_vendedor_server.t012_nome = dsVendedor.nome t012_vendedor_server.t012_vendedor_ok = dsVendedor.bloqueado IF bWFound THEN HSave(t012_vendedor_server) ELSE t012_vendedor_server.t012_vendedor = dsVendedor.Codigo HAdd(t012_vendedor_server) END END HReadNext(dsVendedor) END END HReadFirst(t012_vendedor_server) WHILE HOut() = False HReadSeek(dsVendedor,Codigo,t012_vendedor_server.t012_vendedor,hIdentical) IF NOT HFound(dsVendedor) THEN HDelete(t012_vendedor_server) END
HReadNext(t012_vendedor_server) END HClose(dsVendedor) FBusca_Config_Vendedor_DBF() // Revisa Configurações dos Vendedores. // Integração de Clientes do Local (Omega) para Servidor OmegaPed. dsClientes is Data Source IF HDBOpen(dsClientes,"FoxClie",gsDirClientes) THEN // wIndex is string = Replace(gsDirVendedor ,"DBF","CDX") // Abre o Indice do Arquivo HDBIndex(dsClientes, "CLIENTES.CDX", "codigo") HDeleteAll(t003_clientes_server) nWCont is int nWReg is int = dsClientes.RecNum() HReset(dsClientes) HReadFirst(dsClientes) WHILE HOut(dsClientes) = False nWCont++ STC_Status.Caption = "Lendo Clientes "+NoSpace(nWCont)+" De "+NoSpace(nWReg) IF dsClientes.Vendedor<>"" THEN
HReadSeek(t003_clientes_server,t003_chave,dsClientes.chave,hIdentical) bWFound = HFound(t003_clientes_server) t003_clientes_server.t003_nome = dsClientes.Nome t003_clientes_server.t003_fantasia = dsClientes.Fantasia t003_clientes_server.t003_endereco = dsClientes.Endereco t003_clientes_server.t003_numero = dsClientes.Numero t003_clientes_server.t003_compl = dsClientes.Compl t003_clientes_server.t003_shopping = dsClientes.shopping t003_clientes_server.t003_bairro = dsClientes.Bairro t003_clientes_server.t003_cidade = dsClientes.Cidade t003_clientes_server.t003_cep = dsClientes.Cep t003_clientes_server.t003_estado = dsClientes.Estado t003_clientes_server.t003_contato = dsClientes.Contato t003_clientes_server.t003_cnpj = dsClientes.Cnpj t003_clientes_server.t003_inscricao = dsClientes.Inscricao t003_clientes_server.t003_cpf = dsClientes.Cic t003_clientes_server.t003_telefone = dsClientes.Telefone t003_clientes_server.t003_email = dsClientes.Email t003_clientes_server.t003_site = dsClientes.HomePage t003_clientes_server.t003_vendedor = dsClientes.Vendedor t003_clientes_server.t003_tab_preco = dsClientes.Tab_preco t003_clientes_server.t003_listapreco = dsClientes.ListaPreco t003_clientes_server.t003_rede = dsClientes.CodRede t003_clientes_server.t003_nome_rede = dsClientes.Rede t003_clientes_server.t003_data_inclusao = dsClientes.Incluido t003_clientes_server.t003_hora_inclusao = dsClientes.Hora_Inc t003_clientes_server.t003_data_alteracao= dsClientes.Atualizado t003_clientes_server.t003_hora_alteracao= dsClientes.Hora_atu IF bWFound THEN HSave(t003_clientes_server) ELSE t003_clientes_server.t003_codigo = dsClientes.Codigo t003_clientes_server.t003_chave = dsClientes.Chave HAdd(t003_clientes_server) END END HReadNext(dsClientes) END END HClose(dsClientes)
HCloseConnection(MyConnection_server_OmegaPed) ELSE Info("Não Foi Possível Abrir Banco Server (OmegaPed)") END ELSE Info("Não Localizado Conexão com Internet, Não será possível Sincronizar.") END
STC_Status.Caption = "Concluido Integração (OmegaPed)"
//exemplo simplificado de Multilink dbf DBF_CLIENT.CONFIGURE("VFPOLEDB.1", //provider "C:\DBF\"); //apontar para pasta e nao para arquivo
if (DBF_CLIENT.BEGIN_CONNECT())
if (DBF_CLIENT.SQL_QUERY(@"SELECT * FROM C:\DBF\Dados\cadapl.DBF"))
string json = DBF_CLIENT.DATA
End
string update = "update ""C:\DBF\cadapl.DBF"" set APLNOME = 'NOME MODIFICADO MULTILINK' where APLPRO = '000006'"
if (DBF_CLIENT.SQL_EXEC(update))
// ok
else
Info(DBF_CLIENT.MSG)
End
else
Info(DBF_CLIENT.MSG)
End
DBF_CLIENT.END_CONNECT()
RESUMO =======
DBF_Client.Configure
DBF_Client.Begin_Connect
DBF_Client.Sql_Query
DBF_Client.Data
DBF_Client.Sql_Exec
DBF_Client.MSG
DBF_Client.End_Connect
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/Message modifié, 25 octobre 2022 - 18:08 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 629 messages Popularité : +175 (223 votes) |
|
Posté le 26 octobre 2022 - 22:40 |
PROCEDURE multilnk()
//exemplo simplificado de Multilink dbf DBF_CLIENT.CONFIGURE("VFPOLEDB.1", "C:\DBF\Dados\"); //apontar para pasta e nao para arquivo
IF (DBF_CLIENT.BEGIN_CONNECT()) IF (DBF_CLIENT.SQL_QUERY("SELECT * FROM C:\DBF\Dados\cadapl.DBF")) valor is JSON = DBF_CLIENT.DATA END Update is string = "update ""C:\DBF\cadapl.DBF"" set APLNOME = 'NOME MODIFICADO MULTILINK' where APLPRO = '000006'" IF (DBF_CLIENT.SQL_EXEC(Update)) // ok ELSE Info(DBF_CLIENT.MSG) END ELSE Info(DBF_CLIENT.MSG) END
DBF_CLIENT.END_CONNECT()
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 629 messages Popularité : +175 (223 votes) |
|
Posté le 26 octobre 2022 - 23:46 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 629 messages Popularité : +175 (223 votes) |
|
Posté le 15 septembre 2023 - 14:37 |
Para formatar um Json
sTexto is string = JSONToString(StringToJSON(TEXTO_JSON), psdFormatting)
By Saul
Ou
controle is Control controle <- ControlCreate("htm_i9",typHTML,0,0,0,0)
sjson is string=Replace(EDT_json,CR,"")
sFuncao is string= [ const objetoJSON = [%sjson%]; const json_r = JSON.stringify(objetoJSON, null, 2); json_r; ]
ExecuteJS(controle,sFuncao,Callback)
INTERNAL PROCEDURE Callback(bsucesso boolean, svalor string) IF bsucesso THEN EDT_json_final=svalor ELSE InfoWithTimeout(3s,"Erro na conversão") END ControlDelete(controle) END ok
Nesse caso não existe necessidade de nenhum controle html
Coloca um botão e esse código e é criado em runtime
o mesmo pode ser criado em tempo de execução com o controlcreate!!!
logo após esse geração é utilizar a função executejs que possibilita utilizar javascript dentro do windev para obter retornos
aqui utilizo muito javascript para algumas coisas que não consigo com windev
como é feita a conversão utilizando JS
e pode usar N outros recursos
By Paulo Viana
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Posté le 31 octobre 2023 - 14:53 |
Segue exemplo de conexão ao Oracle.
1- Aqui Abro a conexão local no webdev e busco as variáveis de endereço do servidor, usuário, senha e base de dados Oracle:
IF HOpenConnection(Bd_Eletron_CV) = True THEN HChangeConnection("*",Bd_Eletron_CV) HReset(T001_Acesso) IF HReadSeek(T001_Acesso,t001_Acesso_ID,1,hIdentical) = True THEN SERVER is string = T001_Acesso.t001_server USER is string = T001_Acesso.t001_user SENHA is string = T001_Acesso.t001_password BASE is string = T001_Acesso.t001_base ORACLE_CLIENT.CONFIGURE(SERVER,USER,SENHA) End
2- Quando preciso fazer consulta abro a conexão, executando a query, select, insert, update ou delete, ex.:
IF ORACLE_CLIENT.BEGIN_CONNECT() = True THEN ValorSql2 is string = "select a.tvnd_vendedor_pk,a.tvnd_nome,a.tvnd_nome_abreviado,a.tvnd_senha_consult_vendas,a.tvnd_cpf_cnpj,b.tlnk_unidade_fk_pk,b.tlnk_ativo from tvnd_vendedor a, TLNK_VENDEDOR_UNIDADE b where a.tvnd_vendedor_pk = b.tlnk_vendedor_fk_pk and b.tlnk_ativo = 'S'"
3- depois so tratar o resultado:
IF ORACLE_CLIENT.SQL_QUERY(ValorSql2) = True THEN resultado = ORACLE_CLIENT.DATA HDeleteAll(T048_VendedoresXFilial) FOR i=1 TO resultado..Count T048_VendedoresXFilial.t048_Pk_Proton = resultado[i].tvnd_vendedor_pk T048_VendedoresXFilial.t048_nome = resultado[i].tvnd_nome T048_VendedoresXFilial.t048_nomAbrev= resultado[i].tvnd_nome_abreviado T048_VendedoresXFilial.t048_CpfVend = resultado[i].tvnd_cpf_cnpj T048_VendedoresXFilial.t048_lnkFilial = resultado[i].tlnk_unidade_fk_pk T048_VendedoresXFilial.t048_Ativo = "S" HAdd(T048_VendedoresXFilial) END 4- Por fim fecho a conexão:
ORACLE_CLIENT.END_CONNECT(); |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|