SQL melhor forma de trabalhar.

Forum sobre SQL.

Moderador: Moderadores

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

SQL melhor forma de trabalhar.

Mensagem por Itamar M. Lins Jr. »

Olá!
Estou aqui pensando como irei trabalhar.
Se ficarei checando lá no servidor via SQL ou puxando indexando quando os registros forem poucos.
Por exemplo, usuarios são no máximo 10 ou 15, no máximo 50 registros.
Um exemplo da IA.

Código: Selecionar todos

// Query segura que busca o usuário ativo e confere a senha
    cSql := "SELECT id, apelido, nome, nivel, liberapdv, senha " + ;
            "FROM usuarios " + ;
            "WHERE LOWER(apelido) = " + SqlVal( Lower(AllTrim(cApelidoInput)) ) + " " + ;
            "  AND ativo = TRUE " + ;
            "LIMIT 1"

    DbUseArea( .T., "SQLMIX", cSql, "Q_LOGIN" )

    IF Q_LOGIN->( Eof() )
        hwg_MsgInfo( "Usuário não encontrado ou inativo!" )
        Q_LOGIN->( DbCloseArea() )
        RETURN .F.
    ENDIF
 
Tem a opção de puxar, indexar e usar dbSeek() por exemplo, para não usar LOCATE, não uso LOCATE.
Pq em SQL tudo é no RETORNO da sentença.
Na WEB usando PHP/Python é assim(puxa o hash/json) e trabalha encima disso ou fica mandando via SQL o SELECT o tempo todo ?
Saudações,
Itamar M. Lins Jr.
marcoprodata
Usuário Nível 1
Usuário Nível 1
Mensagens: 22
Registrado em: 12 Abr 2010 18:56
Localização: Caratinga
Curtiram: 1 vez

Re: SQL melhor forma de trabalhar.

Mensagem por marcoprodata »

Não entendi direito a pergunta, mas em aplicativos web ou outros que se comuniquem com API, a gente manda o usuario e senha, e a API faz a validação do usuário e retorna um código HTTP padrão, exemplo 200 ok, ou 401 não autorizado.
Não precisa ficar retornando a tabela de usuários para o programa que requisitou para o mesmo processar localmente toda hora.
Outra questão, quando se trabalha com uma tabela tão pequena, se vai usar comandos SQL não precisa nem de indices, isso pra servidor SQL é milesimos de segundos pra processar e encontrar a informação.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8172
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 6 vezes
Curtiram: 1 vez

Re: SQL melhor forma de trabalhar.

Mensagem por Itamar M. Lins Jr. »

Olá!
Olhei por aqui. Melhorou mais a visão da coisa toda.
Usando API, quando tem. E se não tem, é a mesma coisa com o Harbour(SQLMIX), usando PHP, Python tanto faz. Vem os registros para procurar e validar.
Pode ser Rest Full por exemplo. (API)
Pq quando tem API vc comunica usando protolo HTTP.
Precisa entender os protocolos.
Outra coisa que não precisa ficar puxando a tabela de usuários o tempo todo.
Puxa 1 vez só, valida e descarta, fica só com os dados necessários. Pode até se desejar criar uma tabela local (DBF/INI) etc...Depende da necessidade disso, as opções são variadíssimas.
Captura_de_tela_20260725_123446.png
Captura_de_tela_20260725_123446.png (102.28 KiB) Exibido 44 vezes
Agora é o refresh do browse, posicionamento do cursor no registro depois que mandar o UPDATE/INSERT em SQL, reler para ficar no padrão que eu gosto. Tá no Linux ai, o mesmo código do Windows, detalhe que a aparência vou cuidar disso depois, no Windows não fica com essa disparidade de cores nos icones.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20524
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 2 vezes

Re: SQL melhor forma de trabalhar.

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu: 25 Jul 2026 12:25 Outra coisa que não precisa ficar puxando a tabela de usuários o tempo todo.
Puxa 1 vez só, valida e descarta, fica só com os dados necessários. Pode até se desejar criar uma tabela local (DBF/INI) etc...Depende da necessidade disso, as opções são variadíssimas.
Por isso eu recomendo o uso de ADO.
Ainda não entendeu nem que o SELECT geralmente trás um temporário.
Se é um temporário, nem precisa pensar em criar nada local, porque já veio na consulta.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20524
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 2 vezes

Re: SQL melhor forma de trabalhar.

Mensagem por JoséQuintas »

Código: Selecionar todos

rs := cnSQL:Execute( " SELECT ..." )
DO WHILE ! rs:eof()
   rs:movenext()
ENDDO
rs:Close()
No caso do ADO, esse temporário é no formato ADO
No caso do SQLMIX, esse temporário é acessado como DBF
No caso do hbMySQL esse temporário é acessado como array
No caso de uma API poderia ser JSON, XML, ou outro
Mas o arquivo chamado local é justamente esse retorno.

Diferente de um aplicativo, a página web é algo que pode estar em outra máquina que não é o servidor, pode estar longe, em conexão discada, em computador, em celular, na TV com android, etc é isso que vai ser levado em conta na hora de decidir o que fazer.
As vezes pode ser interessante fazer mais uso do servidor, mas as vezes não.
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
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8172
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 6 vezes
Curtiram: 1 vez

Re: SQL melhor forma de trabalhar.

Mensagem por Itamar M. Lins Jr. »

Olá!
José Quintas ou qualquer um que queira participar.
Quando se inclui um registro, tanto faz em ADO, SQLMIX, RDDSQL, etc.
No caso de uso do browse, com 200, 300 registros, você(s) pegam inclui o registro por SQL e PUXA TUDO DE NOVO, ou INCLUI e ADD só apenas 1(novo) no temporário ? ADO, DBF, ETC ?
Pq na época que fiz isso com VB, era ADO, mas LIGADO no próprio SERVIDOR, tudo que fazia LOCAL já refletia no servidor.
Saudações,
Itamar M. Lins Jr.
Responder