Fórum Operation not allowed on a unidirectional dataset TSQLQuery #374607
05/09/2009
0
Quando executo o codigo abaixo, surge a mensagem:
procedure TFMRelFuncPer.BitBtn2Click(Sender: TObject); var data1, data2: string; begin DataModule1.SQLRelFuncPer.Close; DataModule1.SQLRelFuncPer.sql.Clear; DataModule1.SQLRelFuncPer.sql.add(´select * from tb_afastamento´); DataModule1.SQLRelFuncPer.sql.add(´where afast_cod > 0´); if CheckBox1.Checked=true then DataModule1.SQLRelFuncPer.sql.Add(´and afast_cod_servidor = ´ + DataModule1.SDSAfastamentoafast_cod_servidor.AsString); if CheckBox2.Checked=true then begin Data1:=FormatDateTime(´YYYY/MM/DD´, StrtoDate(MaskEdit1.Text)); Data2:=FormatDateTime(´YYYY/MM/DD´, StrtoDate(MaskEdit2.text)); DataModule1.SQLRelFuncPer.sql.add(´and afast_data_inic >= ´ + data1); DataModule1.SQLRelFuncPer.SQL.Add(´and afast_data_fim =< ´ + data2); end; DataModule1.SQLRelFuncPer.open; if DataModule1.SQLRelFuncPer.RecordCount = 0 then Application.MessageBox(´Não foi selecionado nenhum registro´,´Atenção´, MB_OK + MB_ICONEXCLAMATION) else RvProject1.Execute; end;
Operation not allowed on a unidirectional dataset TSQLQuery.
Onde está o erro?
Attt
dalton
Dbergkamps10
Curtir tópico
+ 0Posts
06/09/2009
Dbergkamps10
Gostei + 0
07/09/2009
Dbergkamps10
Gostei + 0
08/09/2009
Osocram
Componentes UniDirecionais tais como SqlQuery, SqlDataSet so serve para trazer os dados.
Não serve para fazer loop nem trazer em dbgrid.
Gostei + 0
08/09/2009
Afarias
Open;
while not Eof do
begin
//
next;
end;
Assim, se o relatório ler o DataSet apenas 1 vez, do início ao fim, não tem problema. Qualquer outra coisa diferente disso (ex: First, Prior) não vai funcionar.
RecordCount não pode (ou não deve) ser usado em DataSets unidirecionais. Vc deve associar seu SQLQuery a um DataSetProvider e um ClientDataSet e usar o ClientDataSet (RecordCount, etc)
T+
Gostei + 0
10/09/2009
Dbergkamps10
vou tentar aqui.
att
dalton
Gostei + 0
19/09/2009
Dbergkamps10
ainda estou com problemas galera;
fiz o seguinte:
Coloquei o CDS e o Data Set Provider;
O DataSetProvider liguei na SQLQuery do relatório. O CDS liguei no DataSetProvier e o rave liguei no CDS. Porém, não aparece nada no relatorio.
Se alguem puder ajudarr, agradeço.
Attt
Dalton
Gostei + 0
24/09/2009
Dbergkamps10
Quem pode me ajudar.???
Gostei + 0
25/09/2009
Afarias
T+
Gostei + 0
25/09/2009
Dbergkamps10
afarias, vlw pela força. mas ja fiz o tudo q vc recomendou e nada.
se alguem puder ajudar agradeço.
att
dalton
Gostei + 0
25/09/2009
Dbergkamps10
substitui o SQLQuery pelo SQLDataSet, mas continua sem funcionar. alguém tem alguma luz?
Gostei + 0
26/09/2009
Dbergkamps10
Gostei + 0
26/09/2009
Afarias
Mostre mais sobre o seu código e o problema.
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)