Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.06.2009, 11:11
Gamer09 Gamer09 вне форума
Прохожий
 
Регистрация: 11.06.2009
Сообщения: 7
Репутация: 10
По умолчанию ADOQuery вывод в TDBGrid

Как сделать так, чтобы в Grid выводился весь результат запроса, а не только по последнему слову?

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ADODB, DB, Grids, DBGrids;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    Edit2: TEdit;
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    DataSource2: TDataSource;
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function StringToWords(T: string; List: Tstrings = nil): integer;
var
  i, z: integer;
  s: string;
  c: Char;

procedure Check;
  begin
    if (s > '') and (List <> nil) then
    begin
      List.Add(S);
      z := z + 1;
    end;
    s := '';
  end;

begin
  i := 0;
  z := 0;
  s := '';
  if t > '' then
  begin
    while i <= Length(t) + 1 do
    begin
      c := t[i];
          if (c in ['a'..'z']) or (c in ['A'..'Z']) or (c in ['а'..'я']) or
            (c in ['А'..'Я']) and (c <> ' ') then
            s := s + c
          else
            Check;
      i := i + 1;
    end;
  end;
  result := z;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Source, Dest, k1,k2,k3: Tstrings;
  i,k,j: integer;
begin
  Source := TstringList.Create;
  Dest := TstringList.Create; // список слов фразы
  k1 := TstringList.Create;  // все окончания
  k2 := TstringList.Create;  // список окончаний
  k3 := TstringList.Create;
  k1.Add('ее|ие|ые|ое|ими|ыми|ей|ий|ый|ой|ем|им|ым|ом|его|ого|ему|ому|их|ых|ую|юю|ая|яя|ою|ею');
  Source.Add('приветливый малыш с умом чудесным');
  //Source.Add(Edit1.Text);
  Edit1.Text:= 'приветливый малыш с умом чудесным';
  for i := 0 to Source.Count - 1 do
    begin
      StringToWords(Source[i], Dest);
      StringToWords(k1[i],k2);
      Application.ProcessMessages;
    end;

  for i := 0 to k1.Count - 1 do
    begin
      StringToWords(k1[i],k2);
      Application.ProcessMessages;
    end;
 { for i := 0 to Dest.Count - 1 do
  begin
  ShowMessage(Dest[i]);
  end; }
//*******КОНЕЦ ОБРАБОТКИ СЛОВ

for i:=0 to Dest.Count - 1 do
    for k:=0 to k2.Count - 1 do
          if StringReplace(Dest[i],k2[k],'',[rfIgnoreCase])<>Dest[i] then
           begin
              Memo1.Lines.Add(StringReplace(Dest[i],k2[k],'',[rfIgnoreCase]));
           //   ShowMessage(InttoStr(i));
              Dest.Strings[i]:=StringReplace(Dest[i],k2[k],'',[rfIgnoreCase]);
           end;
         // ShowMessage(Dest.Text);
          Edit2.Text:=Dest.DelimitedText;
         // exit;

   // end;
//********* организация запроса к БД

for i:=0 to Dest.Count - 1 do
  begin
with Form1.ADOQuery1  do
   // for k:=0 to k2.Count - 1  do
    //ShowMessage(InttoStr(Length(Dest[i])));
        if Length(Dest[i])>1 then begin
        //k3[j]:=Dest[i]+k2[j];
            ADOQuery1.Close;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('SELECT Name');
            ADOQuery1.SQL.Add('FROM WORDS');
            //ADOQuery1.SQL.Add(Format('WHERE Name LIKE %s',[QuotedStr(Dest[i]+k2[k])]));
            ADOQuery1.SQL.Add(Format('WHERE Name LIKE %s',[QuotedStr(Dest[i]+'%')]));
            //ADOQuery1.SQL.Add(Format('WHERE Name LIKE %s',[QuotedStr(s[i]+'%')]));
            ADOQuery1.Open;
    while not Form1.ADOQuery1.eof do
        begin
          Memo1.Lines.Add(Form1.ADOQuery1.Fields[0].Text);
          ADOQuery1.Next;
        end;
      end;
      end;
      //exit;
  end;
end.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:25.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025