Fórum Como utilizar o comando Execute do SQLCOnnection? #280470

06/05/2005

0

Pessoal ,

Estou tentando utilizar o comando Execute do SQLConnection para retornar um pequeno resultset.

Vi que ele tem a opção de passar o Result set no terceiro parâmetro. Mas isso está dando um acess violation em meu código.

No Help fala, pode utilizar um TCustomSQLDataSet.
Meu codigo é o seguinte.

var
  ComandoSQL: string;
  vDataSet: TCustomSQLDataSet;
begin
    vDataSet := TCustomSQLDataSet.Create(nil);
    vDataSet.SQLConnection := SQLConnection1;
    ComandoSQL := ´select * from COMOSOUBEDAESCOLA´;
    SQLConnection1.Execute(ComandoSQL, nil,vDataSet);
    vDataSet.Open;
    ShowMessage(IntToStr(vDataSet.RecordCount));


Alguem tem ideia de como passo?


Yallebr

Yallebr

Responder

Posts

06/05/2005

Kotho

Duas coisas:

1) Não crie o objeto...

2) passe o objeto como ponteiro (@vDataSet)


Responder

Gostei + 0

06/05/2005

Vinicius2k

Colega,

Se vc verificar o parametro ´ResultSet´ do método irá perceber que é um ponteiro e também que vc não precisa criar o TCustomSQLDataSet, já que o método se encarregará disso.
Só falta o [b:36b446abc7]@[/b:36b446abc7]... :wink:

...
var
  ComandoSQL: string;
  vDataSet: TCustomSQLDataSet;
begin
  ComandoSQL := ´select * from COMOSOUBEDAESCOLA´; 
  SQLConnection1.Execute(ComandoSQL, nil, @vDataSet);
  vDataSet.Open;
  ShowMessage(IntToStr(vDataSet.RecordCount));
  vDataSet.Free;
end;


T+


Responder

Gostei + 0

06/05/2005

Yallebr

Vinicius2K e Kotho,


Obrigado.
Eu reparei no método que o parâmetro é um ponteiro.
Mas agora minha dúvida é, um objeto é um ponteiro? Se ele é, não era suficiente eu apenas colocar o objeto?

Qual é a diferença do @ nesse caso?
Por exemplo se eu utilizar o comando abaixo não irá aceitar o parametro. Sendo que espera um mesmo parametro (tipo pointer) que o Execute, pq ?

New(@vSQLDataSet)


obrigado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar