Como transformar em SQL?

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Como transformar em SQL?

Mensagem por asimoes »

Pessoal,

Alguém sabe como transformar o comando abaixo em SQL UPDATE

Código: Selecionar todos

REPLACE APH04->Nr_Seq WITH StrZero( APH04->( RecNo() ) + 1, 6) ALL
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Como transformar em SQL?

Mensagem por JoséQuintas »

Tem campo incremental na tabela?

UPDATE tabela set campo = LPAD( outrocampo + 1, 6, '0' )
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/
alxsts
Colaborador
Colaborador
Mensagens: 3108
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Como transformar em SQL?

Mensagem por alxsts »

Olá!

Para MariaDb 10.2 ou superior, veja
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Como transformar em SQL?

Mensagem por asimoes »

alxsts escreveu:Olá!

Para MariaDb 10.2 ou superior, veja
Ainda estou em fase de transformação dos dbfs usando querys e depois migrar para o MariaDB, e pra isso estou usando o driver oledb da sybase ads, nesse caso tenho uma rotina que o campo Nr_Seq é feito o replace com recno() sequencial, é uma tabela com registros temporários, após o uso é feito um zap ou delete table agora, porque no ads não funciona o truncate, mas isso deve se resolver quando migrar a base pro mariadb
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Como transformar em SQL?

Mensagem por asimoes »

JoséQuintas escreveu:UPDATE tabela set campo = LPAD( outrocampo + 1, 6, '0' )
Não funcionou no meu programa de testes
2020-02-16 09_11_03-Teste ADS.png
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Como transformar em SQL?

Mensagem por asimoes »

Consegui produzir um select com a sequencia, mas o update não sei como fazer

cSql := "SELECT RIGHT('000000' + CONVERT( CONVERT( NR_SEQ, SQL_INTEGER ) + ROWNUM() - 1, SQL_VARCHAR),6) AS SEQUENCIA FROM APH04 A"
2020-02-16 13_14_14-Teste ADS.png
2020-02-16 13_14_14-Teste ADS.png (10.39 KiB) Exibido 3409 vezes
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Como transformar em SQL?

Mensagem por asimoes »

Pensando bem, eu só preciso do select que já resolveu, o campo pode ficar nulo
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder