В какой версии работаете?
У меня 3.2
1 2017-02-16 08:15:00
Re: Ошибка при добавлении товара (5 replies, posted in Russian)
2 2017-02-15 21:23:14
Re: Ошибка при добавлении товара (5 replies, posted in Russian)
У меня нет никакой ошибки.
Опишите подробнее когда получается ошибка.
Вот видео
3 2017-02-13 23:04:43
Re: Combobox -- ParentCombobox (5 replies, posted in Russian)
Сделал так
procedure main_dobjectcategory_OnChange (Sender: string);
begin
if main.dregion.dbItemID>0
then begin
if main.dobjectcategory.dbItemID>0
then begin
main.dobject.dbFilter:='(id_Region='''+IntToStr(main.dregion.dbItemId)+''') and (id_ObjectCategory='''+IntToStr(main.dobjectcategory.dbItemId)+''') ';
UpdateDatabase('Object');
end
else begin
main.dobject.dbFilter:='id_Region='''+IntToStr(main.dregion.dbItemId)+'''';
UpdateDatabase('Object');
end
end
else begin
if main.dobjectcategory.dbItemID>0
then begin
main.dobject.dbFilter:='(id_ObjectCategory='''+IntToStr(main.dobjectcategory.dbItemId)+''') ';
UpdateDatabase('Object');
end
else begin
main.dobject.dbFilter:='object LIKE "%%"';
UpdateDatabase('Object');
end
end
end;
procedure main_dregion_OnChange (Sender: string);
begin
if main.dregion.dbItemID>0
then begin
if main.dobjectcategory.dbItemID>0
then begin
main.dobject.dbFilter:='(id_Region='''+IntToStr(main.dregion.dbItemId)+''') and (id_ObjectCategory='''+IntToStr(main.dobjectcategory.dbItemId)+''') ';
UpdateDatabase('Object');
end
else begin
main.dobject.dbFilter:='id_Region='''+IntToStr(main.dregion.dbItemId)+'''';
UpdateDatabase('Object');
end
end
else begin
if main.dobjectcategory.dbItemID>0
then begin
main.dobject.dbFilter:='(id_ObjectCategory='''+IntToStr(main.dobjectcategory.dbItemId)+''') ';
UpdateDatabase('Object');
end
else begin
main.dobject.dbFilter:='object LIKE "%%"';
UpdateDatabase('Object');
end
end
end;
Похоже работает.
Может еще кому то пригодится.
4 2017-02-06 19:31:26
Re: Combobox -- ParentCombobox (5 replies, posted in Russian)
. таблица objectcategory
запись1 cat1
запись2 cat2
---------- cat3
---------- cat4
---------- cat5
таблица region
запись1 reg1
запись2 reg2
---------- reg3
---------- reg4
---------- reg5
таблица object
запись1 obj1 + cat1 + reg5
запись2 obj2 + cat4 + reg1
---------- obj3 + cat2 + reg2
---------- obj4 + cat1 + reg2
---------- obj5 + cat2 + reg5
ComboBoxObjectCategory (ForeignKey --- objectcategory)
ComboBoxRegion (ForeignKey --- region)
ComboBoxObject (ForeignKey --- object) (Parent ComboBox --- ComboBoxObjectCategory)
При такой конструкции могу выбрать ComboBoxObjectCategory=cat1
тогда в ComboBoxObject останутся obj1 и obj4
но obj1 из reg5
obj4 из reg2
надо чтобы при выборе ComboBoxRegion=reg2 остался только obj4 (то есть два Parent ComboBox)
5 2017-02-03 20:23:07
Re: Combobox -- ParentCombobox (5 replies, posted in Russian)
1 таблица object
2 таблица objectcategory
3 таблица region
object связь с objectcategory
object связь с region
То есть в коком регионе находится объект и к кокой категории он относится.
Делаю так. ComboBoxObject---ParentComboBox (ComboBoxObjectCategory) или ComboBoxObject---ParentComboBox (ComboBoxRegion)
Но как делать что бы в ComboBoxObject были объекты из выбранного региона(ComboBoxRegion) и выбранной категории (ComboBoxObjectCategory)
6 2017-02-02 21:33:24
Topic: Combobox -- ParentCombobox (5 replies, posted in Russian)
Здравствуйте.
Возникла проблема с комбобоксами.
Есть 3 комбобокса. Каждый связан с таблицей. У первой таблицы связь со вторым и третьим.
С помощью ParentCombobox могу связать только с одним но надо с двумя.
Пробовал через фильтр но выводит ошибку.
Select `object` From `Object` Where `Object`.`id_Rating`={ComboBoxRegion}
пробовал и так
Select `object` From `Object` Where `Object`.`id_Rating`='+main.ComboBoxRegion.sqlValue
7 2017-01-24 22:20:01
Re: Ошибка в СУБД MySQL (17 replies, posted in Russian)
Если в скрипте объявить переменную, можно ли как то использовать его в sql запросе?
8 2017-01-24 22:14:15
Re: Ошибка в СУБД MySQL (17 replies, posted in Russian)
И еще как сделать datetimepickcer.Date := ( datetimepickcer.Date - 1 месяц )?
Можно конечно datetimepickcer.Date := datetimepickcer.Date - 30 но ведь не каждый месяц имеет 30 дней.
С этим разобрался
Form1.DateTimePicker1.Date:=IncMonth(Form1.dtDateOfBirth.Date,-1);
Но фильтры не хочу делать на костылях.
9 2017-01-24 21:23:21
Re: Ошибка в СУБД MySQL (17 replies, posted in Russian)
Спасибо за пример. Только один вопрос. В примере поиск по дате осуществляется строго по фильтру " = ". Как сделать что бы можно было работать с фильтрами " < , > " ?
И еще как сделать datetimepickcer.Date := ( datetimepickcer.Date - 1 месяц )?
Можно конечно datetimepickcer.Date := datetimepickcer.Date - 30 но ведь не каждый месяц имеет 30 дней.
10 2017-01-24 12:13:09
Re: Ошибка в СУБД MySQL (17 replies, posted in Russian)
О если пойти другим путем?
В этом же проекте кнопки SQL Search делают поиск точно так как задумано но к ним не смог подключить checkbox и datetimepicker. Вы можете дать пример как реализовать поиск с MySQL и checkbox , datetimepicker.
Я несколькими постами выше описал проблему
Немножко доработал проект. Сейчас поиск работает, да еще и с параметрами Incremental Search. Но на второй вкладке я не смог нормально подключить к поиску checkbox и datetimepicker (что бы и инкремент работал и фильтры и т.д)
Прошу вас помочь.
11 2017-01-24 10:39:25
Re: Ошибка в СУБД MySQL (17 replies, posted in Russian)
Form1.Button10
Form1.Button12
12 2017-01-23 19:34:56
Re: Ошибка в СУБД MySQL (17 replies, posted in Russian)
Все проблемы второго поста актуальны, я посмел предположить что это ошибки самой программы MVD. Если есть способ их исправить то других вопросов не остается, по скольку необходимость SQL запроса для поиска отпадет.
Если же исправить не удастся, значит поиск должен будет осуществляться по SQL запросу , и тогда остается проблема с CheckBox и DateTimePicker.
Нужно сделать так.
Если галочка datetimepicker не установлена, то выводятся записи с любой датой, но в то же время учитываются значения остальных компонентов участвующие в поиске (edit, combobox,checkbox)
Если datetimepicker активна и выбрана дата, выводятся записи с выбранной датой и с фильтром (то есть <,>,= фильтры должны работать). Значения остальных компонентов опять учитываются.
С чекбоксом аналогична то же самое. Будет состояние grayed, увидим все записи несмотря на Visit.vState ровно 0 или 1. Состояние 1 то все записи у которых Visit.vState ровно 1. Состояние 0 то все записи у которых Visit.vState ровно 0. И опять таки остальные компоненты тоже будут учитываться, то есть всегда будет связь AND.
В прикрепленном проекте из последнего поста я осуществил поиск с помощью SQL запроса, но вышеупомянутые проблемы с CheckBox и DateTimePicker не смог решить.
13 2017-01-22 23:47:28
Re: Ошибка в СУБД MySQL (17 replies, posted in Russian)
Сделал импорт базы из phpmyadmin, может понадобится.
14 2017-01-22 23:36:04
Re: Ошибка в СУБД MySQL (17 replies, posted in Russian)
Немножко доработал проект. Сейчас поиск работает, да еще и с параметрами Incremental Search. Но на второй вкладке я не смог нормально подключить к поиску checkbox и datetimepicker (что бы и инкремент работал и фильтры и т.д)
Прошу вас помочь.
15 2017-01-22 00:24:04
Re: Ошибка в СУБД MySQL (17 replies, posted in Russian)
Возникло еще одна проблема
По тому sql коду что ведется поиск, в таблице выводятся не только значения параметров но и их id.
Смотрю на код и понимаю что так и должно бить. Там же есть эти выборки. Но не понимаю почему стандартная кнопка поиска сгенерировала такой код.
16 2017-01-22 00:02:24
Re: Ошибка в СУБД MySQL (17 replies, posted in Russian)
Вот код sql кнопки
SELECT DISTINCT
`Doctor`.id,
`Doctor`.`dName` as "Doctor.dName",
`Rating`.`rating` as "Rating.rating",
`Specialty`.`specialty` as "Specialty.specialty",
`Agent`.`login` as "Agent.login",
`ObjectCategory`.`objectcategory` as "ObjectCategory.objectcategory",
`City`.`city` as "City.city",
`Region`.`region` as "Region.region",
`Object`.`object` as "Object.object",
`Doctor`.`id_Rating` as "Doctor.id_Rating",
`Doctor`.`id_Specialty` as "Doctor.id_Specialty",
`Doctor`.`id_Agent` as "Doctor.id_Agent",
`Region`.`id_City` as "Region.id_City",
`Object`.`id_ObjectCategory` as "Object.id_ObjectCategory",
`Doctor`.`id_Object` as "Doctor.id_Object",
`Object`.`id_Region` as "Object.id_Region"
FROM `Doctor`
LEFT OUTER JOIN `Rating` ON `Doctor`.`id_Rating`=`Rating`.id
LEFT OUTER JOIN `Specialty` ON `Doctor`.`id_Specialty`=`Specialty`.id
LEFT OUTER JOIN `Agent` ON `Doctor`.`id_Agent`=`Agent`.id
LEFT OUTER JOIN `Object` ON `Doctor`.`id_Object`=`Object`.id
LEFT OUTER JOIN `Objectcategory` ON `Object`.`id_ObjectCategory`=`ObjectCategory`.id
LEFT OUTER JOIN `Region` ON `Object`.`id_Region`=`Region`.id
LEFT OUTER JOIN `City` ON `Region`.`id_City`=`City`.id
WHERE
(Doctor.dName LIKE '%{sdName}%') OR
(Doctor.id_Rating LIKE {sdRating}) OR
(Doctor.id_Specialty LIKE {sdSpecialty}) OR
(Doctor.id_Object LIKE {sdObject}) OR
(Object.id_ObjectCategory LIKE {soObjectCategory}) OR
(Object.id_Region LIKE {soRegion}) OR
(Region.id_City LIKE {srCity}) ;
17 2017-01-22 00:01:18
Re: Ошибка в СУБД MySQL (17 replies, posted in Russian)
Не знаю насколько правильно но нашел несколько ошибок.
1) Вот код стандартной кнопки поиск
SELECT DISTINCT
`Doctor`.`dName` as "Doctor.dName",
`Rating`.`rating` as "Rating.rating",
`Specialty`.`specialty` as "Specialty.specialty",
`Agent`.`login` as "Agent.login",
`Object`.`object` as "Object.object",
`ObjectCategory`.`objectcategory` as "ObjectCategory.objectcategory",
`Region`.`region` as "Region.region",
`City`.`city` as "City.city",
`Doctor`.id,
`Doctor`.`id_Specialty` as "Doctor.id_Specialty",
`Doctor`.`id_Agent` as "Doctor.id_Agent",
`Region`.`id_City` as "Region.id_City",
`Doctor`.`id_Object` as "Doctor.id_Object",
`Object`.`id_ObjectCategory` as "Object.id_ObjectCategory",
`Doctor`.`id_Rating` as "Doctor.id_Rating",
`Region`.`id_City` as "Region.id_City"
FROM `Doctor`
LEFT OUTER JOIN `Specialty` ON `Doctor`.`id_Specialty`=`Specialty`.id
LEFT OUTER JOIN `Agent` ON `Doctor`.`id_Agent`=` Agent`.id
LEFT OUTER JOIN `City` ON `Region`.`id_City`=`City`.id
LEFT OUTER JOIN `Object` ON `Doctor`.`id_Object`=`Object`.id
LEFT OUTER JOIN `Objectcategory` ON `Object`.`id_ObjectCategory`=`Objectcategory`.id
LEFT OUTER JOIN `Rating` ON `Doctor`.`id_Rating`=`Rating`.id
LEFT OUTER JOIN `Region` ON `City`.id=`Region`.`id_City`
Как я понял JOIN-и тут неправильно упорядочены
Я сделал так
FROM Doctor
LEFT OUTER JOIN `Rating` ON `Doctor`.`id_Rating`=`Rating`.id
LEFT OUTER JOIN `Specialty` ON `Doctor`.`id_Specialty`=`Specialty`.id
LEFT OUTER JOIN `Agent` ON `Doctor`.`id_Agent`=`Agent`.id
LEFT OUTER JOIN `Object` ON `Doctor`.`id_Object`=`Object`.id
LEFT OUTER JOIN `Objectcategory` ON `Object`.`id_ObjectCategory`=`ObjectCategory`.id
LEFT OUTER JOIN `Region` ON `Object`.`id_Region`=`Region`.id
LEFT OUTER JOIN `City` ON `Region`.`id_City`=`City`.id
2) Посмотрите на последнюю строку SELECT-a
`Region`.`id_City` as "Region.id_City"
Оно повторяется
3)Нет выбора Region-a в SELEC-е
`Object`.`id_Region` as "Object.id_Region"
как я понял вместо него и дублировалась
`Region`.`id_City` as "Region.id_City"
В прикрепленном архиве два скриншота, из первого видно что выбор Region-a должно было произойти.
4)Во втором скриншоте баг какой то, встречаю не первый раз но не обращал внимание. Таблица повторяется.
По скольку проект начал собирать заново, уверен что не я перекосячил.
Я вас прошу по возможности посмотреть проект, поскольку сам в программировании не разбираюсь подозреваю что не все правильно понял и не все правильно нашел.
В прикрепленном файле из первого поста пока не добавлял кнопку с sql запросом, поэтому тут напишу полностью код по которому будет работать поиск (во всяком случае ошибки не выдаст ). я прицепил его к отдельной кнопке и выводил результат в отдельном TG
18 2017-01-21 12:21:16
Topic: Ошибка в СУБД MySQL (17 replies, posted in Russian)
Добрый день.
У проекта возникает ошибка если пользуюсь MySQL. На SQLite похоже работает , во всяком случае ошибку не показывает.
Сперва подумал может я как то неправильно собрал проект и возник конфликт , но после того как пересоздал увидел что все так и остался.
Прикрепляю проект, если не затруднит посмотрите пожалуйста.
Ошибка выходит при нажатии кнопки поиска.
Спасибо.
19 2017-01-12 13:16:09
Re: multiselect combobox save (13 replies, posted in Russian)
Я использую
Form1_TableGrid1_OnCellDoubleClick
потому что у меня редактирование будет происходит на одной и той же форме, с помощью sql запроса данные из таблицы попадут на панель редактирования.
idEmp := IntToStr(Form1.TableGrid1.dbItemID);
так я получаю id записи с которым надо работать.
Я таким способом хотел приспособить ваш пример к моему проекту.
Сейчас у меня проблема с поиском.
Не знаю как сделать чтобы при выборе food-ов из комбобокса в таблице показывались employees у которых выбраны такие food.
Проблема в том что кроме комбобокса food в поиске будут участвовать текстбоксы lastname и firstname.
20 2017-01-11 23:27:05
Re: multiselect combobox save (13 replies, posted in Russian)
Может час поздний о может я не вникаю но опять возникли проблемы.
Сейчас проблема с поиском.
Как сделать чтобы в поиске участвовал комбобокс?
Я чуть-чуть изменил ваш пример.
21 2017-01-11 23:14:57
Re: multiselect combobox save (13 replies, posted in Russian)
Уважаемый DriveSoft, я очень благодарен вам за помощь.
С трудностями но все таки получается реализовать эту функцию в моем проекте. Только думаю что иду не очень грамотным путем.
Если вы не будете против, хочу после того как закончу, отдать проект на ваш медосмотр. Думаю вы сможете сказать мне где что поправить-изменить.
22 2017-01-11 12:34:59
Re: из TableGrid в Combobox (12 replies, posted in Russian)
Вот небольшой видеоролик на ютуб
23 2017-01-10 23:03:02
Re: из TableGrid в Combobox (12 replies, posted in Russian)
Теперь другая ошибка
Простите я что то туплю
вот проект без ехе файла
подключение к базе осуществляется из скрипта
24 2017-01-10 22:30:12
Re: из TableGrid в Combobox (12 replies, posted in Russian)
О теперь такая ошибка
25 2017-01-10 21:04:47
Re: из TableGrid в Combobox (12 replies, posted in Russian)
beniamin91
Поля должны разделяться запятыми, вместо точки с запятой
Теперь ругается на последнюю строку
WHERE doctor.id={tgDoctor.dbItemId}