Delete Fields

Dbase, sql, paradox in vse drugo kar se tiče baz.
Odgovori
stefanko
Prispevkov: 16
Pridružen: 10.09.2010 17:52:31

Delete Fields

Odgovor Napisal/-a stefanko » 24.12.2010 13:27:45

Kako se to izvede? Probal sem tako

Koda: Izberi vse

Table1.Close;
TAble1.Fields.Remove(table1.FieldByName(edit1.Text));
Table1.CreateTable;
Table1.Open;
pa vrne napako. 'Field 'test' not found.' Kako drugače?

stefanko
Prispevkov: 16
Pridružen: 10.09.2010 17:52:31

Re: Delete Fields

Odgovor Napisal/-a stefanko » 24.12.2010 23:13:00

Problem sem rešil s pomočjo SQL in sicer takole:

Koda: Izberi vse

ABSQuery1.Active:=False;
ABSQuery1.Close;
ABSQuery1.SQL.Clear;
ABSQuery1.SQL.Add('ALTER TABLE Datumi DROP ' + ' ('''+(combobox2.Text)+''')'); // v combobox se izpišejo fields
ABSQuery1.SQL.Open; // tu pride do napake

Koda: Izberi vse

Erorr creating table handle - Native error: 20001
Kako se da to preprečit, oz. kako drugače naredit?

stefanko
Prispevkov: 16
Pridružen: 10.09.2010 17:52:31

Re: Delete Fields

Odgovor Napisal/-a stefanko » 24.12.2010 23:35:15

Koda: Izberi vse

ABSQuery1.SQL.Open; // tu pride do napake

zamenjal

Koda: Izberi vse

ABSQuery1.ExecSQL;
No pa je ratalo.

stefanko
Prispevkov: 16
Pridružen: 10.09.2010 17:52:31

Re: Delete Fields

Odgovor Napisal/-a stefanko » 04.01.2011 13:43:00

Probal sem tudi z ClientDataSet, kateremu sem ustvaril field, katere na koncu shranim v datoteko *.cds.

Koda: Izberi vse

procedure TForm1.UstvariClick(Sender: TObject);
begin
table := TClientDataset.Create(Application);
table.FieldDefs.Add('ID', ftInteger, 0, False);
table.FieldDefs.Add('Status', ftString, 10, False);
table.FieldDefs.Add('Created', ftDate, 0, False);
table.FieldDefs.Add('Volume', ftFloat, 0, False);
table.CreateDataset;
table.Open;
Datasource1.DataSet:=Table;
end;
Shranim tablo v datoteko *.cds.

Koda: Izberi vse

procedure TForm1.ShraniTabloClick(Sender: TObject);
begin
table.SaveToFile('c:\mem.cds');
end;
Pri odpiranju uporabim LoadFromFile

Koda: Izberi vse

procedure TForm1.LoadClick(Sender: TObject);
begin
table := TClientDataset.Create(Application);
table.FieldDefs.Add('ID', ftInteger, 0, False);
table.FieldDefs.Add('Status', ftString, 10, False);
table.FieldDefs.Add('Created', ftDate, 0, False);
table.FieldDefs.Add('Volume', ftFloat, 0, False);
table.CreateDataset;
table.Open;
Datasource1.DataSet:=Table;
table.LoadFromFile('c:\mem.cds');
end;
Kako pa se lahko ta Field briše? NASVET?

Odgovori