Delphi 6 com SQL Server 7
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]
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
Curtidas 0
Respostas
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
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:
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.
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
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.
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
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
13/09/2005
Qual erro q está dando? Aparece alguma mensagem? Poste a mensagem de erro.
GOSTEI 0