×
Linguagem de Programação ADVPL
Perguntas SQL x Posicione
- wilmarCDR
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
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!
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.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 216
- Obrigados Recebidos: 0
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.
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.
- wilmarCDR
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
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!
Muito obrigado pela prontidão e ajuda!! E com certeza, no que puder ajudar, estarei a disopsição!
Abraços!
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.080 segundos