Array
(
)

Como acessar o resultado de um Select usando ADO e SQL SERVE

Rounilo
   - 18 dez 2004

Senhores, estou querendo conhecer o valor de um campo identity de uma tabela. Para isto estou executando os seguintes comandos:
...
Var
wrp:string;
wpredio:string;

DM.ADOQPredio.Close;
DM.ADOQPredio.SQL.Clear;
StrSql:=´Select ident_current(´ + #39 + ´Predio´ + 39;
StrSql:=StrSql + ´) as wpredio´;
DM.ADOQPredio.SQL.Add(StrSql);
DM.ADOQPredio.ExecSQL;
wrp:=dm.ADOQPredio.fieldbyname(´wpredio´).AsString;

e recebo um erro na ultima instrução me informando desconhecer este campo.

Como proceder ???

Agradeço qualquer ajuda.
DM.ADOQPredio.Close;

Mennahe
   - 18 dez 2004

Use esse comando para retornar o valor maximo da coluna identity de sua tabela

SELECT MAX(IDENTITYCOL) FROM

Ate mais!!!
Estou na area!!!!!!!!!!!!!!

Rounilo
   - 18 dez 2004

Macedo, vc nao entendeu a minha duvida:

O que nao estou conseguindo eh acessar o resultado do Select.

No meu caso o comando ´select ident_current(´predio´) as wpredio´ eh bem melhor e funciona corretamente usando o Query Analyzer.

Eu não estou sabendo eh como transferir este dado obtido no comando SQL para um campo(string). Atenção: Estou tendo esta dificulade usando ADO com Sql SErver.

Obrigado

Felipe_cduarte
   - 20 dez 2004

Fala !

nao sei se vai funcionar , mas já tentou fazer esse comando:

DM.ADOQPredio.Open

ao inves de usar o ExecSQL ??

Bom , eu faço assim ...

[]´s

Rounilo
   - 21 dez 2004

Ja tentei fazer com a opção OPEN e continua o problema. Penso que este comando so posso ser usado com Transact SQL.

Obrigado

Rounilo
   - 27 dez 2004

DESCOBRI.

Usando os comandos:
var wrp:string;

ADOQPredio.Close;
ADOQPredio.SQL.Clear;
StrSql:=´Select ident_current(´ + #39 + ´Predio´ + 39 + ´) as NUMIND´;
ADOQPredio.SQL.Add(StrSql);
ADOQPredio.Open;
wrp:=ADOQPredio.Fields[0].value;

Funcionou.

O problema é que vinha tentando com os mesmos comando acima e recebia um tipo de resposta de erro. Mudava alguma coisa e recebia outro tipo de erro.

Agora, resolvi começar os teste da estaca zero, criando um novo form com um adoconnection, adoquery e um datasource. Ao definir o parametro SQL do ADOQuery ´select * from predios´ não inclui via fields editor os campos da tabela. E este fato, da não inclusão dos campos ,foi o diferencial para que o programa funcionasse OK.

Eu costumo sempre incluir todos os campos da tabela via a função Fields Editor. Pensava ser esta uma boa opção e agora vejo que não é.

Fico sem saber por que ao incluir todos os campos da tabela recebo mensagem de erro se na execução do comando SQL nao os cito.

Agradeço qualquer informação.