Search the Community
Showing results for tags 'sqlrdd'.
-
Pessoal, bom dia! Tenho uma tabela de registro único que guarda sequenciais de determinados campos, no caso o campo é "REQUISICAO" Quando abro a tela de cadastro de requisições, verifico o conteúdo deste campo, somo + 1, e gravo este valor e apresento na tela esta numeração. Mas em outra máquina na rede, quando o usuário está na mesma tela pra incluir outra requisição, não está trazendo o prox. código disponível. É como se estivesse visualizando ainda o sequencial anterior. Como devo proceder? A parte do código onde incremento o sequencial é essa: ( cArqConf )->( SR_DbRefresh() ) WHILE ! ( cArqConf )->( Rede_Registro() ) ; ENDDO IF ValType( ( cArqConf )->&cCampoAux. ) == "C" ( cArqConf )->&cCampoAux. := xNewSequencial ELSE ( cArqConf )->&cCampoAux. := Val( xNewSequencial ) ENDIF ( cArqConf )->( DbCommit() ) ( cArqConf )->( DbUnLock() ) ( cArqConf )->( DbSkip(0) )
-
Pessoal boa tarde! Tem como na abertura da tabela com DbUserArea() vir o campo SR_RECNO Ou, temo como saber o valor de SR_RECNO após um DbAppend()? Eu estava retornando este valor com Recno(), mas deu problema quando a seq. de SR_RECNO foi quebrada.
-
Boa tarde pessoal, Estou com problema ao realizar a alteração de estrutura de uma tabela utilizando a função Sr_ChangeStruct() com MySql O log de alteração que é gerado é esse: 09/03/2021 12:09:25: TIPO_EXAME Warning: DROP COLUMN: BACKUP_ (1091) Can't DROP 'backup_'; check that column/key exists - Can't DROP 'backup_'; check that column/key exists Eu acho que é criado este campo BACKUP_ automático, pois na estrutura da tabela não existe este campo. Qualquer alteração de estrutura de qualquer tabela, gera este erro, e o pior que este campo (backup_) é criado na tabela. Gostaria de saber se alguém já passou por isso. Obrigado pela atenção!
-
Link: https://dokumen.site/download/sqlrdd-manual-a5b39ef6b2bcbe caso alguém tenha interesse!
-
Boa tarde Eu uso o SQLRDD no meu projeto principal para coletar dados e gerar relatórios auxilares e pequena atualizações no ERP da empresa, agora vou precisar monta um outro sistema de Coletar de dados e emissão de relatorios mas não poderei usar o SQLRDD. Qual a melhor maneira de fazer isso para conectar no Oracle e no SQLServer ? alguém tem algum exemplo. no meu sistema mesmo usando o SQLRDD procuro usar para incluir, alterar e exlcuir os comando SQL já conforme rotina function grava_dados(_acao,_atabela,_aCampo,_adados, _alias, _logs) __logs := iif(_logs=nil,"N",_logs) &&& Não vai gravar log por um periodo __alias := iif(_alias=nil,_aTabela,_alias) __qtdeReg := len(_aCampo) __tabela := _atabela __acao := _acao if __acao = "I" if _sql() _idLanc := pega_idlanc() cSql := "INSERT INTO "+ __TABELA +" (" for i = 1 to __qtdeReg __Campo := _aCampo[i] cSql += __Campo +", " next cSql += "idlanc" cSql += ") VALUES ( " for x = 1 to __qtdeReg __Dados := _aDados[x] cSql += SR_cDBValue( __Dados ) +", " next cSql += SR_cDBValue( _idlanc )+") " __atual := ajusta_type_dados(__dados) _log_item += "Coluna :"+__Campo+" > Conteudo ["+rtrim(__atual)+"]. "+chr(13)+chr(10) proc_sql(cSql) &__tabela->( SR_DBRefresh() ) else dbselectarea(__alias) if appendrec() for i = 1 to __qtdeReg __Campo := _aCampo[i] __Dados := _aDados[i] if __logs = "S" __atual := ajusta_type_dados(__dados) _log_item += "Coluna :"+__Campo+" > Conteudo ["+rtrim(__atual)+"]. "+chr(13)+chr(10) endif &__alias->&__campo := __dados next if __logs = "S" _log_item += "Coluna : idlanc > Conteudo ["+rtrim(_idlanc)+"]. "+chr(13)+chr(10) endif &__alias->idlanc := _idlanc endif &__alias->( dbcommit() ) &__alias->( dbunlock() ) endif elseif __acao = "A" if _sql() dbselectarea(__alias) _idlanc := &__alias->idlanc cSql := "UPDATE "+ __TABELA +" SET " for i = 1 to __qtdeReg __Campo := _aCampo[i] __Dados := _aDados[i] if i = __qtdereg cSql += __Campo +" = " + SR_cDBValue( __Dados ) +" " else cSql += __Campo +" = " + SR_cDBValue( __Dados ) +", " endif __atual := ajusta_type_dados(__dados) __anterior := ajusta_type_campo(__dados,__campo) if __atual <> __anterior _log_item += "Coluna :"+__Campo+" > de ["+rtrim(__anterior)+"] para ["+rtrim(__atual)+"]. "+chr(13)+chr(10) endif next cSql += "WHERE nrecno ="+SR_cDBValue( mRegistro )+" " proc_sql(cSql) &__alias->( SR_DBRefresh() ) else dbselectarea(__alias) if travareg() _idlanc := &__alias->idlanc for i = 1 to __qtdeReg __Campo := _aCampo[i] __Dados := _aDados[i] if __logs = "S" __atual := ajusta_type_dados(__dados) __anterior := ajusta_type_campo(__dados,__campo) if __atual <> __anterior _log_item += "Coluna :"+__Campo+" > de ["+rtrim(__anterior)+"] para ["+rtrim(__atual)+"]. "+chr(13)+chr(10) endif endif &__alias->&__campo := __dados next endif &__alias->( dbcommit() ) &__alias->( dbunlock() ) endif elseif __acao = "X" dbselectarea(__alias) _idlanc := &__alias->idlanc if _sql() cSql := "DELETE FROM "+__tabela + " " cSql += "WHERE nRecno = "+SR_cDBValue( mRegistro ) + " " proc_sql(cSql) &__alias->( SR_DBRefresh() ) else dbselectarea(__alias) if travareg() &__alias->( dbdelete() ) endif &__alias->( dbcommit() ) &__alias->( dbunlock() ) * &__alias->( dbSkip(0) ) endif if __logs = "S" for i = 1 to __qtdeReg __Campo := _aCampo[i] __Dados := _aDados[i] __atual := ajusta_type_dados(__dados) _log_item += "Coluna :"+__Campo+" > Conteudo ["+rtrim(__atual)+"]. "+chr(13)+chr(10) next endif else if _sql() dbselectarea(__alias) _idlanc := &__alias->idlanc cSql := "UPDATE "+ __TABELA +" SET " for i = 1 to __qtdeReg __Campo := _aCampo[i] __Dados := _aDados[i] if i = __qtdereg cSql += __Campo +" = " + SR_cDBValue( __Dados ) +" " else cSql += __Campo +" = " + SR_cDBValue( __Dados ) +", " endif __atual := ajusta_type_dados(__dados) __anterior := ajusta_type_campo(__dados,__campo) if __atual <> __anterior _log_item += "Coluna :"+__Campo+" > de ["+rtrim(__anterior)+"] para ["+rtrim(__atual)+"]. "+chr(13)+chr(10) endif next cSql += "WHERE nrecno ="+SR_cDBValue( mRegistro )+" " proc_sql(cSql) &__alias->( SR_DBRefresh() ) else dbselectarea(__alias) if travareg() _idlanc := &__alias->idlanc for i = 1 to __qtdeReg __Campo := _aCampo[i] __Dados := _aDados[i] if __logs = "S" __atual := ajusta_type_dados(__dados) __anterior := ajusta_type_campo(__dados,__campo) if __atual <> __anterior _log_item += "Coluna :"+__Campo+" > de ["+rtrim(__anterior)+"] para ["+rtrim(__atual)+"]. "+chr(13)+chr(10) endif endif &__alias->&__campo := __dados next endif &__alias->( dbcommit() ) &__alias->( dbunlock() ) * &__alias->( dbSkip(0) ) endif endif __tab := __alias if __logs = "S" log_cones(__acao, __tabela, _idLanc ) endif dbselectarea(__tab) return .t. e passo os parâmetro desta forma grava_dados("A","cfg_prog", { "dtimpcte", "hrimpcte" }, { mdtHoje, mhrHoje }, alias(), "N") ta meio confuso mas ele monta certinho para gravar tanto em tabelas DBF quando em tabelas SQL. mas meu foco seria como fazer isso sem o SQLRDD. se alguem tiver algum exemplo...
-
Pessoal, Converti todo o meu sistema para MariaDB usando o SQLRDD. Hoje notei que alguns relatórios que utilizan SET RELATION TO não fazem mais a relação entre as tabelas como faziam usando DBFCDX. Alguém já passou por isso? Existe alguma forma de usar o mesmo SET RELATION TO no SQLRDD sem ter que user instrução SQL?
-
Pessoal, Estou gostando muito do SQLRDD, algumas rotinas ficaram até mais rápido que o DBFCDX. Dúvidas: 1) Como vocês fazem backup por dentro do sistema com SQLRDD? 2) Como vocês tem feito o controle de usuários conectados ao banco?
-
Como posso criar um banco de dados POSTGRES automaticamente por dentro do programa usando o SQLRDD?
-
Olá à todos, Estamos tentando usar SQLRDD aqui, porém estamos travando no uso do ordscope. Quando usamos o ordscope numa tabela mysql ordenada por código do produto para trazer os produtos do cod 101 até 119 , sendo que nesta tabela tem 500 produtos por exemplo: OrdScope( 0, 101 ); OrdScope( 1, 119 ) ao executar esta função o retorno é de 101 até 500 , trazendo todos produtos após 101, como se o segundo comando do ordscope não funcionasse. Alguém teria alguma dica quanto isso ao usar SQLRDD, a mesma função usanod DBFCDX funciona perfeitamente. Abraço, Tiago!
-
Senhores, bom dia Está acontecendo algo muito estranho , não sei por qual motivo , criação do indice , enfim ! Tenho um sistema em FWH15.02+xHarbour123+SQLRDD , e outro em xHarbour123+SQLRDD rodando em modo console. o modo console está abrindo os indices com perfeição, quando tento pelo FWH, ele abre os indices incorretamente. isso pode ser uma falha do SQLRDD com o FWH ?
-
Senhores, boa noite Alguem já passou por problemas na criação de indices via SQLRDD ODBC ? a maioria está criando sem problemas, e funcionando perfeitamente , mas exatamente este não vai nem com reza braba. fornecli char(8) numdoc numeric(6,0) serie char(2) index on fornecli + str(numdoc,6,0) + serie to &warq1. eval cp_idxA('6/6') uso dbf2sql xHarbour1.2.3 + BCC582 + SQLRDD ( SQLSERVER )
-
Senhores, boa tarde ! Adquiri a SQLRDD, e gostaria de saber se é possivel usar o xDev ? Por que junto com o código que comprei pra usar a RDD vem um tal de xBuild, mas eu quero usar o Harbour.exe , que vem no pacote de atualização do FWH 15.02 + xHarbour 1.2.3
-
Prezados, Boa tarde! Estou usando SqlRdd com banco de dados MYSQL e estou implementando uma rotina de alteração de estrutura das tabelas. Eu vi que o SQLRDD tem a função ChangeStruct(), porém não consegui fazer funcionar. Alguém tem uma rotina semelhante que possa me ajudar? Grato.
-
Olá a todos. Estou fazendo testes com a sqlrdd, quanto a criação de tabelas via comando SQL nativo. Porém estou enfrentando a seguinte situação: Ao tentar executar: cSql :="CREATE TABLE country (CODE char(3), NAME char(50));" apCode := SR_SQLParse( cSql ) oSql := SR_GetConnection() oSql:exec( SR_SQLCodeGen( apCode, , oSql:nSystemID ) ) Em meu programa, não é executada a ação no DB (MySQL), quando executo comandos como SELECT, UPDATE, INSERT, consigo fazê-lo normalmente. Recebo o seguinte error.log de minha aplicação: Descricao do erro: Erro SR_ODBC/0 SQLExecDirect Error HY090 - 0 - [Microsoft][ODBC Driver Manager] Comprimento inválido de seqüência de caracteres ou de buffer Command sent to database : Steatment handle : 3873144 Connection handle : 3871560 RetCode : -1 - RollBack executed. Alguém teria algum sugestão?