27. februar 2005 - 21:18Der er
16 kommentarer og 1 løsning
Problem med sletning af tekst i felter
Jeg har følgende kode:
with ScheduleDataset do begin Close; Commandtext:= 'SELECT * FROM Calendar WHERE Calendar.Schedule = '''+ComboBox2.Items.Strings[ComboBox2.Itemindex]+''';'; Open; Edit; for i := 0 to RecordCount do if FieldByName('Schedule').AsString > '' then FieldByName('Schedule').Destroy; Post; // her kommer fejlen: En tom række kan ikke indsættes. Der skal være angivet mindst en kolonneværdi.
Programmere ikke delphi så har lidt svært ved at finde ud af koden.. men hvis du kort fortæller mig hvilke (eller de felter du anvender) i databasen samt hvad det er du prøver på så kan jeg nok godt se det:)
with ScheduleDataset do //Gør så jeg ikke behøver at skrive ScheduleDataset foran alle disse kommandoer begin Close; //Lukker forbindelsen Commandtext:= 'SELECT * FROM Calendar WHERE Calendar.Schedule = '''+ComboBox2.Items.Strings[ComboBox2.Itemindex]+''';'; //Udvælger alle felter der indeholder en tekst jeg vælger. De celler der indeholder denne tekst skal tømmes Open; //Åbner forbindelse Edit; //Slår mulighed for redigering til for i := 0 to RecordCount do //Gåt igennem alle records if FieldByName('Schedule').AsString > '' then FieldByName('Schedule').Destroy; //Hvis der står tekst i et felt tømmes dette. Post; //Poster ændringerne
Det jeg vil med koden er at jeg vil slette indholdet i alle celler med navnet Schedule hvor indholdet er teksten jeg specificerer.
Ja okay jeg kan forstå problemet men ved ikke lige hvordan du skal gøre det... problemer er at når du kalder din post så prøver den at tilføje alle de rækker som du jo tømmer her
if FieldByName('Schedule').AsString > '' then FieldByName('Schedule').Destroy; //Hvis der står tekst i et felt tømmes dette.
så hvis du istedet kan tømme dem ved fx at skrive "" eller hvordan det gøres i delphi så burde det fungere... eller sætte den til null.
kan du ikke sige NULL eller ' ' mellemrum mellem dem? Ellers skal du faktisk kigge på databasen vil jeg tro.. sætte en Autonummer ID felt fx. så har du altid et felt der er udfyldt
Jamen der er et felt der er udfyldt udover dette. Der findes feltet Schedule(der skal tømmes) så findes der et dato felt, som der altid står noget i og et note felt som der ofte står noget i.
with ScheduleDataset do begin Close; Commandtext:= 'SELECT * FROM Calendar'; Open; Edit; for i := 0 to RecordCount do if FieldByName('Schedule').AsString= Combobox2.Items.Strings[Combobox2.ItemIndex] then FieldByName('Schedule').AsString:= ''; Showmessage(ComboBox2.Items.Strings[ComboBox2.Itemindex]); Post; Refresh; Close; //Herfra virker den ikke CommandText:= 'SELECT * FROM Schedules WHERE Schedules.Name = '''+Combobox2.Items.Strings[ComboBox2.Itemindex]+''';'; Open; Edit; Delete; Post; Refresh;
end;
MEN: Den sletter stadigvæk intet fra cellerne og koden efter //Herfra virker det ikke virker ikke. Den kommer med en fejl om at jeg ikke er i edit eller indsæt mode.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.