DELPHI Урок 4 Поиск по БД, быстрый поиск по БД

Поделиться
HTML-код
  • Опубликовано: 13 сен 2024

Комментарии • 87

  • @PitSobaka
    @PitSobaka 4 года назад +5

    Да вы, батенька, профи! Эта "хрень" называется одинарная кавычка!) Но вообще то уроки неплохие!

  • @YuriiMokryi
    @YuriiMokryi 7 лет назад +3

    Спасибо за видео! Материал мне очень пригодился!

  • @user-sq4lf2mp7y
    @user-sq4lf2mp7y 3 года назад

    Спасибо вам огромное ! Тем кто не понимает смотрите с первого видео!!!

  • @user-zf2bd8wi5o
    @user-zf2bd8wi5o 4 года назад

    Получилось, спасибо, долго не получалось, переписывала около 30 раз. И в бд все соединила и пробелы удалила, не выходила, хорошо, что в коменты залезла. Что бы не был пропущен оператор в самой базе нужно все написать на английском и без пробелов.

  • @unreal7524
    @unreal7524 8 лет назад

    Проблема в типе. Попробуйте сделать это но уже только текстовыми полями. Например Имя, Фамилия , Отчество, Чтобы было только тексты.. Или же когда создаете базу то опишите цифру как текстовый (Alpha). У меня получился.. Спасибо большое Автору за видео урок

  • @kkasa4524
    @kkasa4524 5 лет назад

    Спасибо большое, очень сильно помог.

  • @battersline2004
    @battersline2004 4 года назад +3

    ничего не работает

  • @galymzhanalmabek160
    @galymzhanalmabek160 8 лет назад +8

    все в точности как у тебя но у меня ошибка "пропущен оператор" хотя я ничего не пропускал(((

    • @МухамедБекмагамбетов-й4х
      @МухамедБекмагамбетов-й4х 6 лет назад

      Galymzhan Almabek тоже самое пропущен оператор

    • @d.1zz7
      @d.1zz7 5 лет назад

      В конце забыл добавить ORDER BY, и ещё WHERE 'имя' должен быть одинаков с ORder BY 'имя'. Как-то так наверное

    • @deathstroke7528
      @deathstroke7528 4 года назад

      procedure TForm2.edt1Change(Sender: TObject);
      var help1, help2: string;
      begin
      help1:='%'+ Form2.edt1.Text+'%';
      help2:=QuotedStr(help1);
      with Form2.qry1 do
      begin
      Close;
      SQL.Clear;
      SQL.Add('Select * from Поставщики where Наименование like' + help2);
      Open;
      end;
      end;

  • @Zikorko
    @Zikorko 6 лет назад

    два раза пробовал по этому гайду, не фига не работала. Потом базу пересоединение по другому ( P.S данный способ подключения бд, есть тут devdelphi.ru/?p=16 ) с данным подключением бд все спокойно работает и ищет. Автору большое спасибо!

  • @SuperArtx
    @SuperArtx 8 лет назад

    Спасибо, очень помогло!

  • @linilLka
    @linilLka 7 лет назад +1

    СПАСИБО!!!!!!!!!!!!!!!!!!!

  • @rat2316
    @rat2316 Год назад

    А как сделать это на двух связанных таблицах? Он находит все именая во всех категориях хотя должен только в выбранной категории имена находить?

  • @amerym2118
    @amerym2118 7 лет назад +1

    А как можно прописать, если используется ADOTable? Что нужно писать после begin? Помогите пожалуйста :(

  • @user-dq3mb3li6n
    @user-dq3mb3li6n 3 года назад

    Люди просто пишем без пробелов. На англ языке работает.
    Также ошибка может быть с числами, тогда указываем в акселе тип не числовой, а текстовый.

    • @abzahafafir
      @abzahafafir 3 года назад +1

      Писала без пробелов, ничего не сработало👍🏻👍🏻 Код в точности такой же

    • @user-dq3mb3li6n
      @user-dq3mb3li6n 3 года назад

      @@abzahafafir В этом Делфи всегда всё не так, надо шаманить, гляди заработает)

  • @user_notfound_user
    @user_notfound_user 5 лет назад +5

    Автор не обьясняет свои действия , по бумажке делает наверное

  • @ShOkErKa
    @ShOkErKa 6 лет назад

    Здравствуйте подскажите в чём ошибка? Компилирование проходит, но как только начинаю забивать в поиске что-то, то вылазит такая ошибка
    First chance exception at $76233EF2. Exception class EOleException with message 'Неопознанная ошибка'. Process Project1.exe (8036)

  • @MasterOfGophers
    @MasterOfGophers 2 года назад

    Наверно врядли кто-то ответит, но почему то данная поисковая строка работает у меня на 2х из 3х форм, на 3й форме при попытке ввода текста в Edit вылетает неопознанная ошибка с указанием на Recordset.Open(Source, ActiveConnection,. Код проверил 100 раз, точно такой же, заново делал форму несколько раз. Ничего не помогает =(

  • @Mckiri
    @Mckiri 8 лет назад

    Круто, но хотелось бы, найти что-то по БД в текстовом файле, а не файле БД.
    Так, чтобы можно было с легкостью делать скажем в паскале.

  • @Oleksii_Makhno
    @Oleksii_Makhno 6 лет назад

    можно TForm1.Edit1.Text.. и все прочее без TForm1 ведь все в одном юните. Типа так: search := QuotedStr('%' + Edit1.Text + '%'); А search лучше передать, как параметр в ADOQuery1.Parameters.ParamValues['parameter'] := search, сделав SQL запрос параметризированным, типа ADOQuery1.SQLAdd('SELECT * FROM DB WHERE fam LIKE :parameter')

  • @user-wi9qx9ry7t
    @user-wi9qx9ry7t 7 лет назад +1

    а как работает конструкция help1:=''%'+Edit1.Text+'%'; что даёт знак процента в апострофах до и после Edit?

    • @MrXlcoder
      @MrXlcoder 5 лет назад

      Константин Николаев возвращает все записи, содержащие подстроку в указанном столбце

  • @kuin4719
    @kuin4719 7 лет назад +1

    procedure TForm1.Edit1Change(Sender: TObject);
    var help1, help2 :string;
    begin
    help1 := '%'+form1.Edit1.Text+'%';
    help2 := QuotedStr(help1);
    With form1.ADOQuery1 do
    begin
    close;
    SQL.Clear;
    SQL.Add('select * from avisma where nam like'+help2+' or group like'+help2+' or otv like'+help2+' or xpe like'+help2+' order by nam');
    open;
    end;
    end;
    Выдаёт ошибку с пропуском оператора, ошибку найти не могу, таблица полностью на англ языке. Если косяк у меня в чём то подскажите пожалуйста

    • @elia2470
      @elia2470 2 года назад

      столкнулся с такой же проблемой, решение нашлось?

  • @Заробіток-й4ъ
    @Заробіток-й4ъ 2 года назад

    а как сделать поиск если в таблице 40 полей? все перечесоять?

  • @treytanya2330
    @treytanya2330 7 лет назад

    Помогите пожалуйста, работаю с interbase вроде бы все сделала, но не ищет вообще, нуль реакции
    procedure TForm4.Edit1Change(Sender: TObject);
    var h1, h2:string;
    begin
    h1:='%'+Form4.Edit1.Text+'%';
    h2:=QuotedStr(h1);
    with Form4.IBQuery1 do
    begin
    Close;
    SQL.Clear;
    SQL.Add('select * from OTVET_ZA_REMONT_KOMP_TEX where FIO like' + h2 + ' or DR like ' + h2 + ' or TABEL_NOMER_OTVET_S like ' + h2 + ' or DOLGNOST_DOLGNOST like ' + h2 + ' or KATEGORIYA like ' + h2 + ' order by FIO ');
    Open;
    end;

  • @samsow1548
    @samsow1548 7 лет назад

    Братан уважуха

  • @hitsislove3563
    @hitsislove3563 7 лет назад

    procedure TForm2.Edit1Change(Sender: TObject);
    var
    j,k:string;
    begin
    j:='%'+Form2.Edit1.Text+'%';
    k:=QuotedStr (j);
    with Form2.ADOQuery1 do
    begin
    Close;
    SQL.Clear;
    SQL.Add('select * from Hitsi where Fullname like'+k+' or DateofBirth like'+k+' or Education like'+k+' or Position like'+k+' or Workexperience like'+k+' ORDER BY Fullname');
    Open;
    end;
    end;
    Ошибка - ADOQuery1: cannot perform this operation on a closed dataset
    Помоги решить пожалуйста

  • @float8859
    @float8859 8 лет назад +8

    ты бы еще шепотом говорил честно! но уроки хорошие

    • @Viktorxxx86
      @Viktorxxx86 4 года назад

      может у него дети спят )

  • @user-is2qp6ls1d
    @user-is2qp6ls1d 3 года назад

    У меня, автор, данные не отображаются.

  • @Викторкирьянов-щ5д

    нормальные видео, Лайк

  • @user-on6xc2do6o
    @user-on6xc2do6o 4 года назад

    Добрый день. Подскажите как сделать поиск по дате, где есть точки. Т. Е например 17.05.2020

    • @user-nt1hm1us5k
      @user-nt1hm1us5k 3 года назад

      В данном случае лучше использовать adoquery и в качестве параметра указывать тип date

  • @Sibarit_Minsk
    @Sibarit_Minsk 7 лет назад

    Виктор, добрый день! После того, как трижды перепроверил код и расставил все "лайки" и согласовал имена колонок - все заработало. Спасибо! Но у меня такой вопрос возник: как только начинаю пользоваться поисковиком тут же пропадает полоса прокрутки справа по всей таблице... Даже после того, как удаляю все из строки поиска, она все равно не работает. После перезапуска всей программы снова появляется ДО ТЕХ ПОР, пока не начинаю пользоваться поиском. Т.к. база данных состоит из 8к. записей, то это ОЧЕНЬ не удобно... В чем может быть проблема? Что посоветуете? Спасибо.

    • @victor_vosonov
      @victor_vosonov  7 лет назад

      Привет! Скорее всего проблема в компоненте DBGrid. Он может подглючивать.

    • @Sibarit_Minsk
      @Sibarit_Minsk 7 лет назад

      Спасибо! Поковырял его немного и заработало. Что сделал, так толком и не понял :))) Но важен результат! Еще раз спасибо! ;)

  • @bizhigittursunbaev8254
    @bizhigittursunbaev8254 6 лет назад

    здраствуйте. я кодировал как ты точно точно но есть ошибка после запуска ПОМОГИТЕ

  • @Viktorxxx86
    @Viktorxxx86 4 года назад

    find:=QuotedStr('%'+form1.Edit1.Text+'%'); нахрена 2 переменные ?
    и запрос больше 255 знаков у меня лично не робит,
    а в целом по этому видео и разобрался что куда

    • @Viktorxxx86
      @Viktorxxx86 4 года назад

      Запрос если больше 255 нужно разбить кавычками и между поставить + типо 'Select * Form'+'la lal la'

  • @nvnip6217
    @nvnip6217 8 лет назад +1

    КАК МОГЛО У ТЕБЯ ВСЁ ПОЛУЧИТЬСЯ, А У МЕНЯ НЕТ, ЕСЛИ Я СДЕЛАЛ ВСЁ ТОЖЕ САМОЕ, КАААААААК??

    • @victor_vosonov
      @victor_vosonov  8 лет назад +2

      +nV NiP ОЧЕНЬ ВНИМАТЕЛЬНО необходимо писать запрос поиска, я с ним тоже много возился))))) проверь и отпишись)))))

    • @greggregr4291
      @greggregr4291 8 лет назад +1

      Дрюкался два часа... оказывается написал form.... вместо from... (ПРОВЕРЯЙТЕ КОД!!!)

  • @aidamur
    @aidamur 7 лет назад

    ребята, у меня тут используется пробел в таблице. запрос без пробелов проходит. как быть? sql.Add('select * from uzhiv where Животные like '+help2+' or Классификация like'+help2+' or Количество like'+help2+' or Корм like'+help2+' or На продажу like'+QuotedStr(help2)+' or Цена за кг like'+QuotedStr(help2)+' order by животные');

  • @aidarallazharov4008
    @aidarallazharov4008 7 лет назад

    procedure TForm1.Edit1Change(Sender: TObject);
    var help1, help2:string;
    begin
    help1:='%'+ Form1.Edit1.Text+'%';
    help2:=QuotedStr(help1);
    with Form1.ADOQuery1 do
    begin
    close;
    SQL.Clear;
    SQL.Add('select * from db where Numb like'+help2+' or Name like'+help2+' or FName like'+help2+' or Fam like'+help2+' or Year like'+help2+' or Lau like'+help2+' order by Numb);
    Open;
    end;
    end;
    end.
    unterminated string выдает такую ошибку что это?

    • @victor_vosonov
      @victor_vosonov  7 лет назад

      после like пробелы поставь

  • @assylzhankhamiyev7176
    @assylzhankhamiyev7176 4 года назад

    вышла неопознанная ошибка

  • @user-kq5nz8sy7z
    @user-kq5nz8sy7z 8 лет назад

    МОжна ли с Adotable делать это все

    • @MrXlcoder
      @MrXlcoder 5 лет назад

      Бақтияр Абенов разумеется. По сути они мало чем между собой отличаются. Введи в ADOQuery в свойстве SQL что-то типа «select * from mytable” и ты получишь практически тот же ADOTable. Эти два класса, если память не подводит, потомки ADODataSet.

  • @user-wi1tb9zx6d
    @user-wi1tb9zx6d 8 лет назад

    на дельфи 7 что написать вместо ADOQuery

    • @MrXlcoder
      @MrXlcoder 5 лет назад

      Алмат Нурдаулет то же самое.

  • @Ceprei___LLIyBaJIoB
    @Ceprei___LLIyBaJIoB 5 лет назад

    зачем шопотом говоришь?

  • @user-dc4ro1rp7k
    @user-dc4ro1rp7k 9 лет назад

    Дайте код

  • @user-up7mo1of9p
    @user-up7mo1of9p 8 лет назад

    ай нид хелп на код вроде не ругается но выдает ошибку параметр дата_рождения не имеет значения по умолчанию
    var
    a1,a2:String;
    begin
    a1:='%'+Form1.Edit1.Text+'%';
    a2:=QuotedStr(a1);
    with Form1.ADOQuery1 do
    begin
    close;
    Sql.Clear;
    Sql.Add('select * from личное_дело where фамилия like'+a2+' or имя like '+a2+' or отчество like '+a2+' or пол like '+a2+' or дата_рождения like '+a2+' or телефон like '+a2+' or прописка_город like '+a2+' or прописка_адрес like '+a2+' or семейное_положение like '+a2+' or гражданство like '+a2+' or серия_паспорта like '+a2+' or номер_паспорта like '+a2+' or кем_выдан like '+a2+' or код_города like '+a2+' or когда_выдан like '+a2+' or Номер_договора like '+a2+' order by фамилия');
    Open;

    • @victor_vosonov
      @victor_vosonov  8 лет назад +1

      +Вес Вес Дело в том, что все названия столбцов должны быть без пробелов и на английском языке, как в запросе (коде), так и в бд на диске.

    • @user-up7mo1of9p
      @user-up7mo1of9p 8 лет назад

      +Виктор Восонов спасибо

  • @OTGBXXL
    @OTGBXXL 8 лет назад

    DBTel это названия бд? Или что?

    • @victor_vosonov
      @victor_vosonov  8 лет назад

      +AnimParadocs это название таблицы. Смотрите урок №3 и почитайте учебники по SQL

  • @user-kq5nz8sy7z
    @user-kq5nz8sy7z 8 лет назад

    procedure TForm1.Edit1Change(Sender: TObject);
    var search1, search2:string;
    begin
    search1:='%'+Form1.Edit1.Text+'%';
    search2:=QuotedStr(search1);
    with Form1.ADOQuery1 do
    begin
    close;
    SQL.Clear;
    SQL.Add('select * from DBGrid1 where fam like'+search2+' or name1 like'+search2+'or name2 like'+search2+'or name2 like'+search2+' or tel like'+search2+' or fax like '+search2+' or prim like');
    Open;
    end;
    end;
    точна как ты написал

    • @victor_vosonov
      @victor_vosonov  8 лет назад

      +Бақтияр Абенов name2 два раза повторяется

  • @user-sd6mb9tr7r
    @user-sd6mb9tr7r 7 лет назад +1

    я Все вводджу по вашому коді по відео ось він
    procedure TForm5.Edit1Change(Sender: TObject);
    var help1, help2:string;
    begin
    help1:='%'+Form5.Edit1.Text+'%';
    help2:=QuotedStr(help1);
    with Form5.ADOQuery1 do
    begin
    close;
    SQL.Clear;
    SQL.Add('Select * from Справи where Клієнт like'+help2+'or Номер справи like'+help2+'or Дата проведення like'+help2+'or Статьlike'+help2+'or Клієнт like'+help2+'or Суддя like'+help2+'or Адвокат like'+help2+'or Тип злочину like'+help2+'or Стаття like'+help2+'order dy Клієнти');
    Open;
    end;
    end;
    і в мене вискакує помилка
    "ошипка сінтексиса (пропущен оператор) В виражиніє запроса Клієнт like %o%or номер справи" і так дальше підажіть будь ласка що мені робити

    • @jizza7634
      @jizza7634 7 лет назад

      Тоже !!! :((

    • @victor_vosonov
      @victor_vosonov  7 лет назад

      +Віктор Липка весь запрос на английском, столбцы в бд тоже на английском

    • @user-sd6mb9tr7r
      @user-sd6mb9tr7r 7 лет назад

      то мені писати на англійські значення слів які стоять у таблиці чи перейменувати самі стовпці у таблиці?

    • @victor_vosonov
      @victor_vosonov  7 лет назад

      сами столбцы в таблице и в запросе поменять после переименования.

    • @wintv2751
      @wintv2751 7 лет назад

      Все сделал как на видео без ошибок, а не ищет записи

  • @deniskurylo1722
    @deniskurylo1722 7 лет назад

    Подскажите плиз почему выбивает ошибку . Exception EDatabaseError in module Project1.exe at 0022D922 DBEdit1: Filed 'Марка автомобиля' not found

    • @МухамедБекмагамбетов-й4х
      @МухамедБекмагамбетов-й4х 6 лет назад

      Denis Kurylo марка пробел автомобиля, данное поле в ексес нужно соединить подяеркиванием

    • @Trein267
      @Trein267 6 лет назад

      У меня похожее Filed 'Полёт' not found и как решить хз. Может есть у кого идеи?

  • @user-yb2sb1zb2y
    @user-yb2sb1zb2y 4 года назад

    Пж погромче

  • @SynWise
    @SynWise 8 лет назад

    "крутые скобки" пффф... какие нафиг скобки? Это максимум кавычки!

    • @Sibarit_Minsk
      @Sibarit_Minsk 7 лет назад

      Если уж "умничаешь", так называй вещи своими именами - апостроф!

  • @user-kq5nz8sy7z
    @user-kq5nz8sy7z 8 лет назад

    Што та не так пашол

  • @dmitrygolik2176
    @dmitrygolik2176 7 лет назад

    какой урок?! даже произнести не можешь что делаешь. "Учитель"

  • @Droazdeer
    @Droazdeer 7 лет назад

    Код бы