Получилось, спасибо, долго не получалось, переписывала около 30 раз. И в бд все соединила и пробелы удалила, не выходила, хорошо, что в коменты залезла. Что бы не был пропущен оператор в самой базе нужно все написать на английском и без пробелов.
Проблема в типе. Попробуйте сделать это но уже только текстовыми полями. Например Имя, Фамилия , Отчество, Чтобы было только тексты.. Или же когда создаете базу то опишите цифру как текстовый (Alpha). У меня получился.. Спасибо большое Автору за видео урок
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;
два раза пробовал по этому гайду, не фига не работала. Потом базу пересоединение по другому ( P.S данный способ подключения бд, есть тут devdelphi.ru/?p=16 ) с данным подключением бд все спокойно работает и ищет. Автору большое спасибо!
Здравствуйте подскажите в чём ошибка? Компилирование проходит, но как только начинаю забивать в поиске что-то, то вылазит такая ошибка First chance exception at $76233EF2. Exception class EOleException with message 'Неопознанная ошибка'. Process Project1.exe (8036)
Наверно врядли кто-то ответит, но почему то данная поисковая строка работает у меня на 2х из 3х форм, на 3й форме при попытке ввода текста в Edit вылетает неопознанная ошибка с указанием на Recordset.Open(Source, ActiveConnection,. Код проверил 100 раз, точно такой же, заново делал форму несколько раз. Ничего не помогает =(
можно TForm1.Edit1.Text.. и все прочее без TForm1 ведь все в одном юните. Типа так: search := QuotedStr('%' + Edit1.Text + '%'); А search лучше передать, как параметр в ADOQuery1.Parameters.ParamValues['parameter'] := search, сделав SQL запрос параметризированным, типа ADOQuery1.SQLAdd('SELECT * FROM DB WHERE fam LIKE :parameter')
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; Выдаёт ошибку с пропуском оператора, ошибку найти не могу, таблица полностью на англ языке. Если косяк у меня в чём то подскажите пожалуйста
Помогите пожалуйста, работаю с 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;
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 Помоги решить пожалуйста
Виктор, добрый день! После того, как трижды перепроверил код и расставил все "лайки" и согласовал имена колонок - все заработало. Спасибо! Но у меня такой вопрос возник: как только начинаю пользоваться поисковиком тут же пропадает полоса прокрутки справа по всей таблице... Даже после того, как удаляю все из строки поиска, она все равно не работает. После перезапуска всей программы снова появляется ДО ТЕХ ПОР, пока не начинаю пользоваться поиском. Т.к. база данных состоит из 8к. записей, то это ОЧЕНЬ не удобно... В чем может быть проблема? Что посоветуете? Спасибо.
find:=QuotedStr('%'+form1.Edit1.Text+'%'); нахрена 2 переменные ? и запрос больше 255 знаков у меня лично не робит, а в целом по этому видео и разобрался что куда
ребята, у меня тут используется пробел в таблице. запрос без пробелов проходит. как быть? 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 животные');
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 выдает такую ошибку что это?
Бақтияр Абенов разумеется. По сути они мало чем между собой отличаются. Введи в ADOQuery в свойстве SQL что-то типа «select * from mytable” и ты получишь практически тот же ADOTable. Эти два класса, если память не подводит, потомки ADODataSet.
ай нид хелп на код вроде не ругается но выдает ошибку параметр дата_рождения не имеет значения по умолчанию 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;
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; точна как ты написал
я Все вводджу по вашому коді по відео ось він 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 номер справи" і так дальше підажіть будь ласка що мені робити
Да вы, батенька, профи! Эта "хрень" называется одинарная кавычка!) Но вообще то уроки неплохие!
Спасибо за видео! Материал мне очень пригодился!
Спасибо вам огромное ! Тем кто не понимает смотрите с первого видео!!!
Получилось, спасибо, долго не получалось, переписывала около 30 раз. И в бд все соединила и пробелы удалила, не выходила, хорошо, что в коменты залезла. Что бы не был пропущен оператор в самой базе нужно все написать на английском и без пробелов.
Проблема в типе. Попробуйте сделать это но уже только текстовыми полями. Например Имя, Фамилия , Отчество, Чтобы было только тексты.. Или же когда создаете базу то опишите цифру как текстовый (Alpha). У меня получился.. Спасибо большое Автору за видео урок
Спасибо большое, очень сильно помог.
ничего не работает
все в точности как у тебя но у меня ошибка "пропущен оператор" хотя я ничего не пропускал(((
Galymzhan Almabek тоже самое пропущен оператор
В конце забыл добавить ORDER BY, и ещё WHERE 'имя' должен быть одинаков с ORder BY 'имя'. Как-то так наверное
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;
два раза пробовал по этому гайду, не фига не работала. Потом базу пересоединение по другому ( P.S данный способ подключения бд, есть тут devdelphi.ru/?p=16 ) с данным подключением бд все спокойно работает и ищет. Автору большое спасибо!
Спасибо, очень помогло!
СПАСИБО!!!!!!!!!!!!!!!!!!!
А как сделать это на двух связанных таблицах? Он находит все именая во всех категориях хотя должен только в выбранной категории имена находить?
А как можно прописать, если используется ADOTable? Что нужно писать после begin? Помогите пожалуйста :(
Люди просто пишем без пробелов. На англ языке работает.
Также ошибка может быть с числами, тогда указываем в акселе тип не числовой, а текстовый.
Писала без пробелов, ничего не сработало👍🏻👍🏻 Код в точности такой же
@@abzahafafir В этом Делфи всегда всё не так, надо шаманить, гляди заработает)
Автор не обьясняет свои действия , по бумажке делает наверное
Здравствуйте подскажите в чём ошибка? Компилирование проходит, но как только начинаю забивать в поиске что-то, то вылазит такая ошибка
First chance exception at $76233EF2. Exception class EOleException with message 'Неопознанная ошибка'. Process Project1.exe (8036)
Наверно врядли кто-то ответит, но почему то данная поисковая строка работает у меня на 2х из 3х форм, на 3й форме при попытке ввода текста в Edit вылетает неопознанная ошибка с указанием на Recordset.Open(Source, ActiveConnection,. Код проверил 100 раз, точно такой же, заново делал форму несколько раз. Ничего не помогает =(
Круто, но хотелось бы, найти что-то по БД в текстовом файле, а не файле БД.
Так, чтобы можно было с легкостью делать скажем в паскале.
можно TForm1.Edit1.Text.. и все прочее без TForm1 ведь все в одном юните. Типа так: search := QuotedStr('%' + Edit1.Text + '%'); А search лучше передать, как параметр в ADOQuery1.Parameters.ParamValues['parameter'] := search, сделав SQL запрос параметризированным, типа ADOQuery1.SQLAdd('SELECT * FROM DB WHERE fam LIKE :parameter')
а как работает конструкция help1:=''%'+Edit1.Text+'%'; что даёт знак процента в апострофах до и после Edit?
Константин Николаев возвращает все записи, содержащие подстроку в указанном столбце
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;
Выдаёт ошибку с пропуском оператора, ошибку найти не могу, таблица полностью на англ языке. Если косяк у меня в чём то подскажите пожалуйста
столкнулся с такой же проблемой, решение нашлось?
а как сделать поиск если в таблице 40 полей? все перечесоять?
Помогите пожалуйста, работаю с 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;
Братан уважуха
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
Помоги решить пожалуйста
ты бы еще шепотом говорил честно! но уроки хорошие
может у него дети спят )
У меня, автор, данные не отображаются.
нормальные видео, Лайк
Добрый день. Подскажите как сделать поиск по дате, где есть точки. Т. Е например 17.05.2020
В данном случае лучше использовать adoquery и в качестве параметра указывать тип date
Виктор, добрый день! После того, как трижды перепроверил код и расставил все "лайки" и согласовал имена колонок - все заработало. Спасибо! Но у меня такой вопрос возник: как только начинаю пользоваться поисковиком тут же пропадает полоса прокрутки справа по всей таблице... Даже после того, как удаляю все из строки поиска, она все равно не работает. После перезапуска всей программы снова появляется ДО ТЕХ ПОР, пока не начинаю пользоваться поиском. Т.к. база данных состоит из 8к. записей, то это ОЧЕНЬ не удобно... В чем может быть проблема? Что посоветуете? Спасибо.
Привет! Скорее всего проблема в компоненте DBGrid. Он может подглючивать.
Спасибо! Поковырял его немного и заработало. Что сделал, так толком и не понял :))) Но важен результат! Еще раз спасибо! ;)
здраствуйте. я кодировал как ты точно точно но есть ошибка после запуска ПОМОГИТЕ
SQL запрос смотрите
find:=QuotedStr('%'+form1.Edit1.Text+'%'); нахрена 2 переменные ?
и запрос больше 255 знаков у меня лично не робит,
а в целом по этому видео и разобрался что куда
Запрос если больше 255 нужно разбить кавычками и между поставить + типо 'Select * Form'+'la lal la'
КАК МОГЛО У ТЕБЯ ВСЁ ПОЛУЧИТЬСЯ, А У МЕНЯ НЕТ, ЕСЛИ Я СДЕЛАЛ ВСЁ ТОЖЕ САМОЕ, КАААААААК??
+nV NiP ОЧЕНЬ ВНИМАТЕЛЬНО необходимо писать запрос поиска, я с ним тоже много возился))))) проверь и отпишись)))))
Дрюкался два часа... оказывается написал form.... вместо from... (ПРОВЕРЯЙТЕ КОД!!!)
ребята, у меня тут используется пробел в таблице. запрос без пробелов проходит. как быть? 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 животные');
Aidamur Elmezov знак подчеркивание
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 выдает такую ошибку что это?
после like пробелы поставь
вышла неопознанная ошибка
МОжна ли с Adotable делать это все
Бақтияр Абенов разумеется. По сути они мало чем между собой отличаются. Введи в ADOQuery в свойстве SQL что-то типа «select * from mytable” и ты получишь практически тот же ADOTable. Эти два класса, если память не подводит, потомки ADODataSet.
на дельфи 7 что написать вместо ADOQuery
Алмат Нурдаулет то же самое.
зачем шопотом говоришь?
Дайте код
ай нид хелп на код вроде не ругается но выдает ошибку параметр дата_рождения не имеет значения по умолчанию
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;
+Вес Вес Дело в том, что все названия столбцов должны быть без пробелов и на английском языке, как в запросе (коде), так и в бд на диске.
+Виктор Восонов спасибо
DBTel это названия бд? Или что?
+AnimParadocs это название таблицы. Смотрите урок №3 и почитайте учебники по SQL
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;
точна как ты написал
+Бақтияр Абенов name2 два раза повторяется
я Все вводджу по вашому коді по відео ось він
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 номер справи" і так дальше підажіть будь ласка що мені робити
Тоже !!! :((
+Віктор Липка весь запрос на английском, столбцы в бд тоже на английском
то мені писати на англійські значення слів які стоять у таблиці чи перейменувати самі стовпці у таблиці?
сами столбцы в таблице и в запросе поменять после переименования.
Все сделал как на видео без ошибок, а не ищет записи
Подскажите плиз почему выбивает ошибку . Exception EDatabaseError in module Project1.exe at 0022D922 DBEdit1: Filed 'Марка автомобиля' not found
Denis Kurylo марка пробел автомобиля, данное поле в ексес нужно соединить подяеркиванием
У меня похожее Filed 'Полёт' not found и как решить хз. Может есть у кого идеи?
Пж погромче
"крутые скобки" пффф... какие нафиг скобки? Это максимум кавычки!
Если уж "умничаешь", так называй вещи своими именами - апостроф!
Што та не так пашол
какой урок?! даже произнести не можешь что делаешь. "Учитель"
Код бы
в группе вконтакте