TClientDataset - database i memory
Hej,Er der nogen her på eksperten der kan være mig behjælpelig med at select´e data i en database som kun kører i memory. Dvs. ingen underliggende fil database !
Jeg skal anvende det til at man inde på min hjemmeside kan downloade et program som kun skal køre som demo. Når programmet lukkes ned, er data´ene også væk.
Jeg har tænkt på at bruge et tClientDataset, men jer er ikke sikker på om jeg kan anvende det på samme måde som hvis der lå en rigtig database under mit program.
Almindeligvis bruger jeg en database komponent på mit datamodul, og så knytter jeg tquery´s. til den. tDatabase peges så på den rigtige database fx via odbc, eller vha connectionstrings
Det jeg vil opnå er at slippe for at ændre hele mit program men blot få database komponenten at pege på en database som kører i memory. Når kunden har købt mit software, så får han en ny exe fil som peger på en rigtig database !
Jeg fandt dette på nettet vedr. clientdataset:
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
for i := 1 to 100 do
begin
table.Append;
table.FieldByName('ID').AsInteger := i;
table.FieldByName('Status').AsString := 'Code'+IntToStr(i);
table.FieldByName('Created').AsDateTime := Date();
table.FieldByName('Volume').AsFloat := Random(10000);
table.Post;
end;
Ovenstående ser ud som en mulig løsning, men hvordan knytter jeg en tquery til det, og dermed kan køre en almindelig query dvs. sql.add('select * from "hvilken tabel ????"');
Jeg kan ikke se nogen tabel at selecte i !
Undskyld mit lange spørgsmål, håber det er forståeligt !
mvh
Greenland
