Fórum Como utilizar o comando Execute do SQLCOnnection? #280470
06/05/2005
0
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
Curtir tópico
+ 0Posts
06/05/2005
Kotho
1) Não crie o objeto...
2) passe o objeto como ponteiro (@vDataSet)
Gostei + 0
06/05/2005
Vinicius2k
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+
Gostei + 0
06/05/2005
Yallebr
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)