/ Forside/ Teknologi / Udvikling / Delphi/Pascal / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
TADOQuery close metod!
Fra : lavang
Vist : 1152 gange
50 point
Dato : 18-11-04 00:18

Hej med jer!
Jeg sidder nu med et lille socket-programmering...kommunikationen mellem sockerne ser ud til at være ok, men så har jeg problem med TADOQuery (bruges til at gemme data af klienterne, som er logget inde i server)...Det er at hver gang jeg kalder open metod og efter data er blevet bearbejdet, vil jeg kalder close og her går det galt... exception raised here.
Ved I hvorfor?

***** her er lidt af koden ****
...
SQL.Add('WHERE clientID = ' + IntToSTR(client^.clientID));
Open;
if NOT isEmpty then
begin
while NOT EOF do
begin
client^.FriendList.Add(
FieldByName('clientName').Asstring + comma +
IntToSTR(FieldByName('Status').AsInteger) + ';');
Next;
end;
end;
//-update database!
Close; //-her går det galt!!!!!!! hvis jeg ikke lukker dataset her, kan jeg ikke kalde SQL.clear, ikke sand???
SQL.Clear;
SQL.Add('UPDATE clients ');
SQL.Add('SET Status = ' + IntToSTR(ORD(client^.status)) + ' ');
SQL.Add('WHERE userName = ' + client^.userName);
ExecSQL;
...
************************
Jeg håber meget på at I vil hjælpe med at give mig en god løsning, mange tak.

Hilsen fra
Lavang

 
 
Kommentar
Fra : rpje


Dato : 18-11-04 09:36

SQL.Add('WHERE clientID = ' + IntToSTR(client^.clientID));
//Open;
SQL.Active:=True; <== Har du forsøgt dette.
if NOT isEmpty then
begin
while NOT EOF do
begin
client^.FriendList.Add(
FieldByName('clientName').Asstring + comma +
IntToSTR(FieldByName('Status').AsInteger) + ';');
Next;
end;
end;
//-update database!
//Close; //-her går det galt!!!!!!! hvis jeg ikke lukker dataset her, kan jeg ikke kalde SQL.clear, ikke sand???
SQL.Clear;
SQL.Add('UPDATE clients ');
SQL.Add('SET Status = ' + IntToSTR(ORD(client^.status)) + ' ');
SQL.Add('WHERE userName = ' + client^.userName);
ExecSQL;




Accepteret svar
Fra : rpje

Modtaget 50 point
Dato : 18-11-04 09:48

Her er et eks. Hvordan jeg normalt har en select efterfølgende en update/insert


TEMPOEQuery.SQL.Clear;
TEMPOEQuery.SQL.Add('SELECT *');
TEMPOEQuery.SQL.Add(' FROM '+DBUSERstr+'AKKINFO');
TEMPOEQuery.SQL.Add(' WHERE ID='+ViewSTATIONIDDBText.Field.Text);
Try
TEMPOEQuery.Active;
Case (TEMPOEQuery.RecordCount=0) of
True : Try
TEMPOEQuery.SQL.Clear;
TEMPOEQuery.SQL.Add('INSERT INTO '+DBUSERstr+'AKKINFO');
TEMPOEQuery.SQL.Add(' (ID,KKVPROCEDURE,EQUIPMENT,INSPECTIONDONE)');
TEMPOEQuery.SQL.Add(' VALUES ('+ViewSTATIONIDDBText.Field.Text+','+
#39+AfslutProcedureEdit.text+#39+','+
#39+AfslutEquipmentEdit.text+#39+','+
#39+' '+#39+')');
TEMPOEQuery.ExecSQL;
Except
end;
False : Try
TEMPOEQuery.SQL.Clear;
TEMPOEQuery.SQL.Add('UPDATE '+DBUSERstr+'AKKINFO');
TEMPOEQuery.SQL.Add(' SET KKVPROCEDURE='+#39+AfslutProcedureEdit.text+#39+','+
'EQUIPMENT='+#39+AfslutEquipmentEdit.text+#39);
TEMPOEQuery.SQL.Add(' WHERE ID='+ViewSTATIONIDDBText.Field.Text);

TEMPOEQuery.ExecSQL;
Except
end;
end;
Except

end;

MV.
Peter Jensen

Kommentar
Fra : lavang


Dato : 18-11-04 12:23

Hej PJ og rpje!
Mange tak for jeres indlæg. For rpje er svaret : ja og det virker hellere ikke for property Active = open.
Og Peters kan godt være, at det virker, men jeg ikke har afprøvet endnu. jeg vender tilbage senere på dagen,
men endnu engang tak for hjælpen.

Forresten I har ikke give oplysning om hvorfor jeg ikke må kalde Close metod efter jeg har bearbejdet data igennem...
Det er jo her der "raised exception"...

Hilsen
Lavang

Godkendelse af svar
Fra : lavang


Dato : 01-12-04 22:51

Tak for svaret rpje. jeg husker at jeg har svaret på dette, men hvorfor hulen vil dette emne ikke lukket...
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409070
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste