Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
14 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 14 Visitantes :: 1 Motor de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Espessura do cursor intermitente

7/3/2017, 09:08 por Jefferson Matakas

Bom dia a todos !!

Existe uma opcao no windows que pode ser acessada atraves da 'central da …

Comentários: 0

DESENVOLVIMENTO EM REDES

4/3/2017, 18:45 por AJC

Pessoal tem ou conhece livros ou material para programação em
redes usando banco de dados nativo …

Comentários: 0

USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 4

Como preencher campos vazios

9/2/2017, 11:55 por Linghston

Pessoal boa tarde,

É o seguinte, eu preciso preencher os campos de uma coluna da tabela DBF que …

Comentários: 2

Enviar msg para WhatsAPP via VFP

7/2/2017, 10:31 por Eliana

Olá Pessoal!

Alguém sabe se é possível enviar mensagem para o WhatsAPP via VFP?


Grata


Comentários: 0

Estatísticas
Temos 7037 usuários registrados
O último usuário registrado atende pelo nome de GETULIO

Os nossos membros postaram um total de 31 mensagens em 17 assuntos

sql-select-in-vfp-and-tsql

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Informativo sql-select-in-vfp-and-tsql

Mensagem por _batmanvfp_ em 12/11/2010, 13:56

Um texto interessante

link Original
Código:
http://www.foxite.com/articles/read.aspx?id=62&document=sql-select-in-vfp-and-tsql



SQL SELECT em VFP e T-SQL

Cuidado com essas diferenças de linguagem quando se deslocam entre o Visual FoxPro eo SQL Server.

Ao longo dos últimos anos, a equipe FoxPro na Microsoft fez um excelente trabalho de trazer SQL VFP de sub-linguagem aproximação aos padrões aceitos pela indústria. Em particular, eles fizeram a instrução SELECT mais conformes aos padrões ANSI-92, que é uma boa notícia para os desenvolvedores que precisam se deslocar entre Visual FoxPro e bancos de dados de back-end como o SQL Server e Oracle.

No entanto, a versão VFP de SELECT ainda tem uma sintaxe bastante e outras diferenças para interceptar o programador incautos. Algumas dessas diferenças refletem as peculiaridades da linguagem FoxPro, enquanto outros oferecem verdadeiramente útil - embora não-padrão - os serviços que os desenvolvedores não estariam dispostos a prescindir - a capacidade de enviar os resultados da consulta direta a um array, por exemplo.

Neste artigo, vamos destacar as diferenças entre o Visual FoxPro eo SQL Server (T-SQL) versões do SELECT. Nós compilou a lista especificamente com o SQL Server 2000 em mente, embora a maioria dos pontos aplicam-se igualmente para as versões 7 e 2005 (vamos atualizar o artigo após o SQL Server 2005 foi para fora por um tempo). Se você souber de alguma diferença de versão não cobertos aqui, nós apreciamos seu feedback.



Ordem das cláusulas
VFP sempre foi descontraído sobre o fim das cláusulas de dentro de uma instrução, e que se aplica igualmente a SELECT. Ponha seu ORDER BY antes da cláusula FROM, ou o seu direito TOP N no final do comando, e VFP não tanto como piscar. T-SQL é muito mais rigoroso. Em geral, as demandas de T-SQL que as cláusulas aparecem na ordem em que estão listados no diagrama de sintaxe no arquivo de Ajuda.

Esvaziar os nomes das colunas
Uma peculiaridade do T-SQL que às vezes surpreende folk VFP é sua capacidade de gerar conjuntos de resultados com os nomes de coluna vazia. Isso acontece por padrão, com colunas calculadas ou agregado. Por exemplo, nos resultados desta consulta:

Código:
SELECT EmployeeID, UPPER(LEFT(LastName,4)) FROM Employees

a segunda coluna não têm nome. No VFP, o nome da coluna seria padrão para algo como Exp_1. Em ambas as versões, você pode usar a cláusula AS para atribuir um nome a uma coluna:

Código:
SELECT EmployeeID,
UPPER(LEFT(LastName,4)) AS ShortName
FROM Employees

mas T-SQL fornece uma sintaxe alternativa que não é suportado pelo VFP:

Código:
SELECT EmployeeID,
ShortName = UPPER(LEFT(LastName,4))
FROM Employees
TOP N


No VFP, SELECT com uma cláusula TOP N também deve ter uma cláusula ORDER BY. Não é assim No SQL-T. Você pode omitir o ORDER BY, caso em que a ordem será arbitrária.

WITH TIES

No T-SQL, você pode adicionar vínculos com uma cláusula TOP n para indicar que o conjunto de resultados deve incluir todos os valores vinculados na linha Nth. Então, se você especificar TOP 10 com laços, e as linhas 10 e 11 têm o mesmo valor, você terá 11 linhas no conjunto de resultados.

VFP não não suporta esta cláusula. No entanto, o VFP 8.0 e abaixo sempre se comportam como se WITH TIES estava presente. Assim, a consulta a seguir irá produzir 11 linhas, caso as linhas 10 e 11 tem a quantidade mesma ordem:

Código:
SELECT TOP 10 Order_Amt FROM Orders ;
ORDER BY Order_amt

Se isso não é o que você quiser, adicione uma cláusula GROUP BY, assim:

Código:
SELECT TOP 10 Order_Amt FROM Orders ;
ORDER BY Order_amt GROUP BY Order_Amt


No VFP 9.0, o comportamento padrão é não retornar valores vinculados. Assim, uma consulta sempre retornará exatamente o número de linhas especificado na cláusula N TOP. Você pode fazer VFP 9.0 se comportam como as versões anteriores, definindo ENGINEBEHAVIOR a 70 ou 80, mas isso será em detrimento da performance. (Nossos agradecimentos a Stella Levin por apontar esse comportamento para nós e para o que sugere a GROUP BY solução mostrada aqui.)

Opcional cláusula FROM
Ora aqui está um outro que surpreende muita gente. No T-SQL, é legal para omitir a cláusula FROM de um comando SELECT - mas apenas se as expressões na lista de expressões não fazem referência as colunas em uma tabela. Se o fizer, sempre irá gerar um conjunto de resultados com exatamente uma linha. O comando a seguir, por exemplo, iria produzir um conjunto de resultados contendo apenas a data e hora atual:

Código:
 SELECT  GETDATE() AS Current

VFP sem hesitar rejeitar um comando assim.

operador LIKE
VFP e T-SQL também permitem que você usar caracteres curinga ('_' e '%') com o operador LIKE. Estes representam um único personagem e um número arbitrário de caracteres, respectivamente. Assim, esta consulta:

Código:
SELECT * FROM Products
WHERE Product_Name LIKE '%chocolate%'

encontrará todos os produtos cujos nomes incluem "chocolate".



T-SQL vai uma melhor, permitindo que você também usar colchetes para indicar intervalos e conjuntos. Por exemplo, a seguinte declaração vai encontrar produtos cujos códigos começam com A, B ou C, seguido de dois dígitos:

Código:
SELECT * FROM Products
WHERE Product_Code LIKE '[A-C][0-9][0-9]'


Infelizmente, esse recurso útil não está disponível no VFP.

GROUP BY e funções agregadas
Este tem aprisionado muitos desenvolvedores VFP, especialmente desde VFP 8,0 apareceu pela primeira vez. Em versões anteriores, a seguinte sintaxe era legal:

Código:
SELECT Country, City, AVG(Inv_Total)
FROM Invoices GROUP BY Country

No entanto, embora legal, essa sintaxe produziu resultados potencialmente incorretas. No exemplo acima, o VFP deve selecionar uma cidade arbitrária para combinar com cada país, mesmo que um determinado país pode ter muitas cidades.

ASNI SQL-92 impõe uma regra simples: se uma consulta tem uma cláusula GROUP BY, todos os itens na lista de expressões (a lista imediatamente a seguir ao SELECT palavras-chave) deve ser uma função agregada ou de uma das colunas listadas na cláusula GROUP BY . T-SQL estritamente impõe essa regra, assim como o VFP 8.0 e acima, mas as versões anteriores do FoxPro não (no VFP 8.0 e acima, você pode substituir a execução através da criação ENGINEBEHAVIOR a 70).

Agrupamento em números de coluna
Ainda sobre o tema do GROUP BY, a seguinte sintaxe é legal em todas as versões do Visual FoxPro:

Código:
SELECT Country, AVG(Inv_Total) ;
FROM Invoices GROUP BY 1

T-SQL se engasgar com isso porque os números da coluna não são permitidas na cláusula GROUP BY. Você teria que usar o seguinte formulário (que também seria legal em VFP):

Código:
SELECT Country, AVG(Inv_Total)
FROM Invoices GROUP BY Country


No entanto, ambas as versões permitem a utilização de números de coluna com ORDER BY.

cláusula HAVING
No VFP, você pode usar uma cláusula HAVING mesmo se não houver cláusula GROUP BY. Nesse caso, tendo se comporta como WHERE. No T-SQL, TENDO não é permitida sem GROUP BY.

Associações externas
No T-SQL, você não pode especificar uma junção simplesmente como EXTERIOR. Ao contrário do VFP, você deve incluir a palavra apropriada: esquerda, direita ou cheio.

Projeções e tabelas derivadas
VFP e T-SQL tanto apoio subconsultas na cláusula WHERE. No VFP 9.0, como no T-SQL, subqueries também podem aparecer na lista de expressões e no FROM e cláusulas JOIN. Subconsultas na lista de expressões são chamadas de projeções, enquanto as FROM ou cláusulas JOIN são chamados de tabelas derivadas. Os arquivos de ajuda para VFP 9.0 e SQL Server contêm exemplos de como estes podem ser usados.

VFP 8.0 e anteriores não reconhecem projeções ou tabelas derivadas.

Destinos de consulta
VFP permite o envio de resultados de consulta a uma variedade de destinos. Por padrão, eles vão para um cursor behinds-the-scenes que VFP imediatamente exibe em uma janela Procurar. Você pode usar a cláusula de preferência para especificar opções para a janela. Alternativamente, você pode usar a cláusula para enviar os resultados para a tela, uma impressora ou um arquivo de texto. Ou você pode usar INTO para colocar os resultados em um cursor de tabela ou matriz.

No T-SQL, os resultados da consulta são simplesmente retornou para o processo do cliente na forma de um conjunto de resultados. A única opção para re-direcionando-se a enviá-los para uma nova tabela, o que você faz assim:


Código:
SELECT * INTO Choc_Products FROM Products
WHERE Product_Name LIKE '%chocolate%'


Ao contrário do VFP, a posição da cláusula INTO é significativo - ele deve aparecer entre a lista de expressão e da cláusula FROM - e ele não deve incluir a palavra-chave TABLE.

Se você quiser enviar os resultados da consulta para uma tabela temporária - semelhante a um cursor VFP - usar a mesma sintaxe como acima, mas começar o nome da tabela com #. Tabelas cujos nomes começam com # são armazenadas em banco de dados SQL Server, tempdb e são destruídos quando as conexões que os criou está fechado.

Memo e campos gerais em cláusula DISTINCT
VFP 7.0 e abaixo permitem que você especifique memorando e campos gerais na lista de expressões de uma consulta que inclui a palavra-chave DISTINCT, apesar de tais consultas produzir resultados incorretos. Para Visual FoxPro 8.0, a equipe FoxPro reforçou a sintaxe. Agora, nota geral e os campos não são permitidos em consultas distintas, a menos que ENGINEBEHAVIOR está definido para 70.

Os equivalentes do SQL Server do memorando e campos gerais são as colunas de texto e imagem. T-SQL não permite que esses tipos de coluna nos conjuntos de resultados de consultas que têm uma cláusula DISTINCT.

Número de mesas
VFP 8.0 e abaixo impõe um limite de 30 mesas (para ser preciso, 30 aliases) em uma instrução SELECT. O valor equivalente em T-SQL é 256. VFP 9.0 não tem limite teórico.

Nidificação de subconsultas
No VFP 8.0 e abaixo, você pode ter apenas um único nível de subconsulta de nidificação. No VFP 9.0, não há limite teórico. No T-SQL, o limite é 32 níveis.

Valores nulos
Se você quiser excluir valores nulos de um conjunto de resultados (ou excluir tudo, exceto os valores nulos), você pode (e deve) usar IS [NOT] NULL na cláusula WHERE. Isto aplica-se tanto em VFP e T-SQL.

Mas tenha cuidado com o ISNULL aparentemente semelhantes () função. No VFP, essa função faz o que seu nome sugere: ele diz que se uma determinada expressão é avaliada como nula. No T-SQL, ISNULL () é mais parecido com VFP NVL () da função. Ela recebe dois argumentos, se o primeiro argumento for nulo, a função retorna o segundo argumento, caso contrário, retorna o primeiro.

_batmanvfp_
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Informativo Re: sql-select-in-vfp-and-tsql

Mensagem por Julio em 12/11/2010, 14:00

valeu, reputado!

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Informativo Re: sql-select-in-vfp-and-tsql

Mensagem por _batmanvfp_ em 12/11/2010, 14:17

link Original
microsoft.com/brasil/msdn/tecnologias/MSDNMagazine/novidadesvisualfoxpro.mspx

Visual FoxPro 9.0
Acesso e Manipulação de Dados

Um dos grandes diferenciais do VFP sempre foi o suporte nativo à linguagem SQL. Esse suporte foi bastante melhorado no VFP 9.0 Beta através da adição de mais recursos do padrão ANSI-92. Alguns deles são mostrados na Listagem 1 (todos os exemplos são baseados no database Northwind, distribuído com o VFP).


*-- Total dos pedidos por cliente (usando sub-query na cláusula FROM)


Código:
SELECT Cust.CustomerID, Cust.CompanyName, Soma.SomaPedidos ;
  FROM Customers Cust LEFT JOIN ;
    ( ;
        SELECT CustomerID, ;
              SUM(I.Quantity * I.UnitPrice) as SomaPedidos ;
        FROM Orders P INNER JOIN OrderDetails I ;
          ON P.OrderId = I.OrderId ;
        GROUP BY CustomerID ;
    ) as Soma ;
  ON Soma.CustomerID = Cust.CustomerID


*-- Total dos pedidos por cliente (usando sub-query na cláusula SELECT)


Código:
SELECT Cust.CustomerID, Cust.CompanyName, ;
    ( ;
        SELECT SUM(I.Quantity * I.UnitPrice);
        FROM Orders P INNER JOIN OrderDetails I ;
          ON P.OrderId = I.OrderId ;
        WHERE P.CustomerID = Cust.CustomerID ;
      ) as SomaPedidos ;
FROM Customers Cust 


As consultas realizam o mesmo trabalho: obter o total dos pedidos por cliente. Entretanto, elas ilustram duas novas possibilidades do comando SELECT-SQL no VFP 9.0 Beta: a utilização de “subqueries” (consultas aninhadas) nas cláusulas SELECT e FROM

_batmanvfp_
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Informativo Re: sql-select-in-vfp-and-tsql

Mensagem por Marcos Guedes em 12/11/2010, 14:25

Reputado!

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum