× Linguagem de Programação ADVPL

Perguntas SQL x Posicione

Mais
10 anos 3 meses atrás #24283 por wilmarCDR
SQL x Posicione foi criado por wilmarCDR
Boa tarde, estou iniciando minhas atividades com a linguagem ADVPL e de cara percebi que esta linguagem possui vários comandos para manipulação e retorno em um Banco de Dados, como por exemplo a função Posicione() e DbSelectArea(). Também percebi que há também a possibilidade de retornar dados com consultas SQL.
Já desenvolvi várias aplicações em outras linguagens, dentre elas, C#, Java, PHP, e Pascal, onde para que conseguisse retornar dados do banco ou inserir dados em um banco, utilizava bastante a sintaxe SQL, ou seja, já estou bem acostumado com este modelo de trabalho. Agora minha pergunta: Quais as vantagens de se utilizar os comandos Posicione(), DbSelectArea() e outros do ADVPL, em relação a utilizar consultas SQL como no exemplo abaixo?

cQuery:= "SELECT C2_PRODUTO FROM SC2990 WHERE C2_NUM= '"+Mv_Par01+"' AND C2_PRODUTO='"+codigoBarras+"' "
cQuery:= changeQuery(cQuery)
DbUseArea(.T., "TOPCONN", TcGenQry(,,cQuery),"PRODUTO", .F.,.T.)
cProduto:= PRODUTO->C2_PRODUTO

Conto com a ajuda de vocês. Muito obrigado!

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 3 meses atrás #24285 por admin
Respondido por admin no tópico SQL x Posicione
Wilmar boa noite, a utilização do Posicione com certeza é bem mais rapida no meio de um processamento, cada consulta sql que você executa o protheus cria uma tabela temporária em disco com o resultado da sua consulta, agora imagine um processamento com 5 mil 10 mil registros, a transferencia de disco seria enorme e com certeza degradaria em muito seu servidor.

Recomendo realmente a utilização do posicione do dbseek sempre que possível, ou seja, se a tabela que vc deseja pesquisar possua indice, caso não possua e não seja necessário a criação do mesmo ai sim o ideal é uma consulta em sql.

Tente sempre que utilizar uma consulta sql também utilizar o comando (NOLOCK) para destravar a tabela na select, aumenta bastante o processamento do banco.

Abraços e Seja bem vindo ao Masteradvpl, contamos com sua experiência em outras linguagens para nos ajudar também.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 3 meses atrás #24289 por wilmarCDR
Respondido por wilmarCDR no tópico SQL x Posicione
OK, Entendi, então vou procurar aprender mais sobre esses comandos.
Muito obrigado pela prontidão e ajuda!! E com certeza, no que puder ajudar, estarei a disopsição!

Abraços! :cheer:

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.080 segundos
Joomla templates by a4joomla