Topic: TStringList or Array of String (or something else) ?

Hello Dmitry and all MVD fans,


On a Form, I have (on the left), a Tablegrid.
With OnCellClick, I get the ID of the selected item, and display results of various query in Edit Fields, Memo, Comboboxes and DBImages all over the Form.


From here, no problem, quite easy.


http://i.imgur.com/ZLJFtvl.jpg


But look at my code :


id := IntToStr(list_asset.TableGrid1.dbItemID);
    list_asset.EdName.Text := SQLExecute('SELECT asset_name FROM asset WHERE asset.id="'+id+'"');
    list_asset.EdSKU.Text := SQLExecute('SELECT asset_sku FROM asset WHERE asset.id="'+id+'"');
    list_asset.EdPrice.Text := SQLExecute('SELECT asset_price FROM asset WHERE asset.id="'+id+'"');
    list_asset.EdURL.Text := SQLExecute('SELECT asset_url FROM asset WHERE asset.id="'+id+'"');
    list_asset.DBImage1.LoadFromDatabase('asset','asset_img1',StrToInt(id));
    list_asset.DBImage2.LoadFromDatabase('asset','asset_img2',StrToInt(id));
    list_asset.DBImage3.LoadFromDatabase('asset','asset_img3',StrToInt(id));
    list_asset.Edvendor.Text := SQLExecute('SELECT vendor.vendor_name FROM vendor INNER JOIN asset ON vendor.id = asset.id_vendor WHERE asset.id ="'+id+'"');
    list_asset.MmDetail.Text := SQLExecute('SELECT asset_descr FROM asset WHERE asset.id="'+id+'"');
    list_asset.ComboBox1.dbItemID := SQLExecute('SELECT main_cat.id FROM main_cat INNER JOIN asset ON main_cat.id = asset.id_main_cat WHERE asset.id ="'+id+'"');
    list_asset.ComboBox2.dbItemID := SQLExecute('SELECT sub_cat.id FROM sub_cat INNER JOIN asset ON sub_cat.id = asset.id_sub_cat WHERE asset.id ="'+id+'"');
    list_asset.ComboBox3.dbItemID := SQLExecute('SELECT minor_cat.id FROM minor_cat INNER JOIN asset ON minor_cat.id = asset.id_minor_cat WHERE asset.id ="'+id+'"');

Do you see how many SQLExecute there are here ?


Know, I don't know if it's with TStringList or with Array of string (or something else), but there must be a way to get all data from


SQLExecute('SELECT * FROM asset WHERE asset.id="'+id+'"');

and then to get each result with something like :


list_asset.EdName.Text := Array[0];
list_asset.EdURL.Text := Array[1];

or


list_asset.EdName.Text := TStringList[0];
list_asset.EdURL.Text := TStringList[1];

What would you use, TStringList or Array on a simple query like :


SELECT asset_name, asset_sku, asset_price, asset_url FROM asset

and how ?


Thanks in advance


Cheers


Mathias

I'm a very good housekeeper !
Each time I get a divorce, I keep the house

Zaza Gabor

Re: TStringList or Array of String (or something else) ?

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);  
var
    Results: TDataSet;
begin
    SQLQuery('SELECT name, sort FROM person', Results);
    while not Results.Eof do
    begin
        Form1.Memo1.Lines.Add( Results.FieldByName('name').AsString;
        Form1.Memo1.Lines.Add( Results.FieldByName('sort').AsString;
        Results.Next;
    end;
    Results.Free;
end;
Dmitry.

Re: TStringList or Array of String (or something else) ?

A big thank you Dmitry !

This works fine.

Cheers


Mathias

I'm a very good housekeeper !
Each time I get a divorce, I keep the house

Zaza Gabor

4 (edited by prahousefamily 2015-12-08 02:05:35)

Re: TStringList or Array of String (or something else) ?

Thank You ...mathmathou and Dmitry.  for question and answer
OK It Good Work And Easy to Use Array

My Visual Database : I Love You
Easy For Beginner Student For Me