Jump to content

limelect

Members
  • Content Count

    775
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by limelect


  1. First thanks to everybody. Especially @Lars Fosdal as I used his solution (INSTR)

    my main problem was SQL memory problems.

    I hope I fixed most of it.

    Now to my specific solution

     

    DataSource1.DataSet := ProjectsFDTable; RESET Grid.
    FDLocalSQL1.DataSets.Clear;
    FDQuery4.Close;
     FDQuery4.SQL.Clear;


     FilesFDTable.Filtered:=False;
     FilesFDTable.Filter:=
    '(MainDirectory LIKE ''%' + JvDirectoryEdit1.Text + '%'') OR INSTR(''' + JvDirectoryEdit1.Text + ''', MainDirectory) > 0' ;
      FilesFDTable.Filtered:=True;


      FDLocalSQL1.DataSets.Add(FilesFDTable);
      FDLocalSQL1.Active := True;
      ProjectsFDTable.LocalSQL:=FDLocalSQL1; << otherwise I had problems


      FDQuery4.SQL.add('Select SectionsId,MainDirectory,MyDateTime,ProjectName,ProjectrealName,Category,FileMask ,Description,FilesIndex');
      FDQuery4.SQL.add('from FilesFDTable,Projects');
      FDQuery4.SQL.add(' WHERE SectionsId=FilesIndex'); 
      FDQuery4.Open;<< use  Query on the grid

     DataSource1.DataSet := FDQuery4;

     

    1. I added  LocalSQL to my  ProjectsFDTable;

    2. I filter my file table. (NO memory problem) as per  @Lars Fosdal  suggestion with OR

    3. I added to my LocalSQL FDLocalSQL1.DataSets.Add(FilesFDTable); after filtering

    4. I query   FDQuery4.SQL.add('from FilesFDTable,Projects'); 

     

    Now no memory problems  OR until the next problem on a large software.

    And thanks again


  2. @haentschman why don't you guys try this on my demo??

    does not work

      FDQuery1.SQL.Text := 'select * from Files where MainDirectory LIKE :Code';
    FDQuery1.ParamByName('code').AsString := '%G:\Delphi Projects\DelphiArea\DelphiComponenets\simplegraphxx%';
    FDQuery1.Open;


     PLZ stop guessing


  3. @haentschman I do not see how it applies to my case

    furthermore doing too much with SQL in my a[pplication

    have a lot of memory problems.

    My solution, for the time being, is to split

    LIKE and Lars Fosdal sugestion INSTR

    I could not use the statement

    FDQuery1.SQL.add('WHERE (MainDirectory LIKE ''%' + Edit1.Text + '%'') OR INSTR(''' + Edit1.Text + ''', MainDirectory) > 0'  );

    As it gives me memory problems.

     


  4. Maybe I will clarify my problem I add the base directory to the database.

    But this directory has many subdirectories and if one searches for a subdirectory

    he still needs to find the main directory. This is why

    my search is like that.

     

    Do you think there is another way to solve the problem?


  5. yes just add a few characters to the text and it will not find the item (a record)

    and this is what I want or delete some text and it will find

    see my first  writings WITHIN my DB text

    7 minutes ago, Lars Fosdal said:

    The example does not exemplify the problem.

     


  6. @Lars Fosdal this F7 full statement output that works

     

    'Select SectionsId,MainDirectory,MyDateTime,ProjectName,ProjectrealName,Category,FileMask ,Description,FilesIndex'#$D#$A'from Files,Projects'#$D#$A'WHERE MainDirectory LIKE ''%G:\Delphi Projects\image32_3.2.2%''AND SectionsId=FilesIndex'

     

    As you see no problem


  7. I have a text (it is a directory) I would like to find in a DB.

    My SQL which is OK

     FDQuery4.SQL.add('WHERE MainDirectory LIKE ''%' + jvDirectoryEdit1.Text + '%'''

    Now to the problem

    If my DB text is  G:\Delphi Projects\image32_3.2.2\

    and I am looking for 

    G:\Delphi Projects\image32_3.2.2\

    or 

    G:\Delphi Projects\image32_3 

    My above statement finds it NO PROBLEM

    HOW EVER if my search is

    G:\Delphi Projects\image32_3.2.2\Examples\Layers101

    My above line does NOT find it.

    What I also tried is using CHARINDEX which I may be did not use correctly

     

    So w.hat I am looking for is search text WITHIN my DB text

    Any idea thanks

     


     

×