Delphi 6 com SQL Server 7

SQL Server

13/09/2005

Prezados Amigos do Forum,

Estou com problema e gostaria que alguem podesse me ajudar,pois bem, o problema é o seguinte:

Estou conectando um Banco de Dados no SQL Server 7, através do ADO, a conexão com o banco esta perfeita e bem configurada. O problema que me deparei foi que o SQL Server não aceita os ´ : ´ (dois pontos)como parametro para uma consulta, inserir dados ou alterar dados, como por exemplo:

Const SQL_pesquisa : String = ´Select NomeRegiao From Regiao ´+
´Where NomeRegiao Like :prnPesq ´;
Begin
With dm.qryRegiao do
begin
Close;
SQL.Clear;
SQL.Add(SQL_pesquisa);
Parameters.ParamByName(´prnPesq´).Value := Edit1.Text + ´¬´;
Open;
end;
end;

Sempre trabalhei com IB/FB e nunca me deu problema como eu estou trabalhando em orgão governamental o DB dele é o SQL Server 7. No IB/FB eu uso da mesma forma com excessão (Parameters) e dá certo, gostaria que alguem me ajuda-se neste dilema !!!!

[color=green:f71e294968]Movido de Delphi para SQL Server[/color:f71e294968]


Wly

Wly

Curtidas 0

Respostas

Rjun

Rjun

13/09/2005

O SQL aceita sim os dois pontos. Embora você não tenha espeficado o erro, acredito que seja no like, pois você tem que colocar entre ´´ a condição. Vou colocar uma sugestão.

resourcestring
  SQL_pesquisa = ´Select NomeRegiao From Regiao Where NomeRegiao Like ¬s´;

begin 
  dm.qryRegiao.SQL.Clear; 
  dm.qryRegiao.SQL.Add(Format(SQL_Pesquisa, [´´´ + Edit1.Text + ´¬´]);
  try 
    dm.qryRegiao.Open; 
    // Código para processar o resultado
  finally
    dm.qryRegiao.Close;
  end;
end; 



GOSTEI 0
Wly

Wly

13/09/2005

É o seguinte instrunção SQL foi testada tanto o MS Access e IB/FB e funcionaram. Utilizando os dois pontos( : ), Por que no quando eu passo esta mesma instrução para o Query Analyzer da erro ????

Select NomeRegiao From Regiao Where (NomeRegiao=:prnPesq);

No delphi eu utilizo assim para testar, tanto atraves do Acess ou do IB/FB:

Const SQLpesq : String = ´Select NomeRegiao From Regiao Where (NomeRegiao=:prnPesq)´;
With dm.qryRegiao do
  begin
     close;
     sql.clear;
     sql.add(SQLpesq);
     parambyname(´prnPesq´).asString := Edit1.text;
     open;
  end;

Este exemplo acima foi testa no Delphi 6 acessando SGDB do IB/FB, no caso MS Access coloquei um o ´parameters´ e nos dois funcionaram.


GOSTEI 0
Rjun

Rjun

13/09/2005

No Query Analyzer dá erro mesmo, pois variáveis no Sql Server são precedidas do sinal de @.

Se você esta utilizando ADO você deve usar Parameters.ParamByName.

Const 
  SQLpesq : String = ´Select NomeRegiao From Regiao Where (NomeRegiao=:prnPesq)´; 
begin
  dm.qryRegiao.sql.clear; 
  dm.qryRegiao.sql.add(SQLpesq); 
  dm.qryRegiao.Parameters.ParabyName(´prnPesq´).asString := Edit1.text; 

  try
    dm.qryRegiao.Open;
    // Código para processamento da query
  finally
    dm.qryRegiao.Close;
  end;
end;  



GOSTEI 0
Wly

Wly

13/09/2005

No Query Analyzer dá erro mesmo, pois variáveis no Sql Server são precedidas do sinal de @. Se você esta utilizando ADO você deve usar Parameters.ParamByName.
Const 
  SQLpesq : String = ´Select NomeRegiao From Regiao Where (NomeRegiao=:prnPesq)´; 
begin
  dm.qryRegiao.sql.clear; 
  dm.qryRegiao.sql.add(SQLpesq); 
  dm.qryRegiao.Parameters.ParabyName(´prnPesq´).asString := Edit1.text; 

  try
    dm.qryRegiao.Open;
    // Código para processamento da query
  finally
    dm.qryRegiao.Close;
  end;
end;  


Fiz o test acima porem o erro esta dando em ´asString´ coloquei ´Value´ e mesmo assim continua dando erro ???


GOSTEI 0
Rjun

Rjun

13/09/2005

Qual erro q está dando? Aparece alguma mensagem? Poste a mensagem de erro.


GOSTEI 0
POSTAR