51

(7 replies, posted in Russian)

мне стыдно

52

(7 replies, posted in Russian)

k245 wrote:

Как писал выше indigen, просто добавь воды smile
точнее, добавь условие выборки по id_product

sIDProduct := <Form>.<TableGrid>.dbItemID;
s := SQLExecute('SELECT IFNULL(GROUP_CONCAT(DISTINCT DATE_FORMAT(`date`, "%e") ORDER BY `date` ASC), "") FROM tabledate WHERE MONTH(`date`) = '+sMonth+' AND YEAR(`date`)='+IntToStr(Year)+' AND id_product = '+sIDProduct );

procedureFormProduct_MonthCalendar_OnGetMonthBoldInfo (Sender: TObject; Month, Year: Cardinal; var MonthBoldInfo: Cardinal);
var
    AStr: array of string;
    AByte: Array of byte;
    sMonth,sIDProduct, s: string;
    i, c: integer;
begin
    sMonth := IntToStr(Month);
    sIDProduct := <FormProduct>.<TableGrid>.dbItemID;
s := SQLExecute('SELECT IFNULL(GROUP_CONCAT(DISTINCT DATE_FORMAT(`date`, "%e") ORDER BY `date` ASC), "") FROM tabledate WHERE MONTH(`date`) = '+sMonth+' AND YEAR(`date`)='+IntToStr(Year)+' AND id_product = '+sIDProduct ):



На вот этом моменте      sIDProduct := <FormProduct>.<TableGrid>.dbItemID;    выдает ошибку компиляции...

53

(7 replies, posted in Russian)

Вечер всем. Дела такие: как бы я не пытался привязать календарик не выходит у меня ничего, даже не знаю где моя ошибка вроде все правильно делаю... При нажатии на продукт - в другой таблице отображаются те даты которые привязаны к конкретному продукту но в календаре идет подсветка ВСЕХ! дат почему то ?? Кто нибудь поможет разобраться?

54

(7 replies, posted in Russian)

indigen wrote:

В запросе к базе не уточняется id_product. Добавь его в условия и должен получить то, что ищешь

Ну я так и знал что id нужен но как правильно его вклеить в скрипт ?
s := SQLExecute('SELECT IFNULL(GROUP_CONCAT(DISTINCT DATE_FORMAT(`date`) ORDER BY `date` ASC), "") FROM bsm_date WHERE MONTH(`date`) = '+sMonth+' AND YEAR(`date`)='+IntToStr(Year) + 'tabledate.id_product=tabledate.id_date');
? помогите кто нибудь

55

(7 replies, posted in Russian)

Доброго дня всем. Подскажите мне как сделать так чтоб в календаре числа показывали даты которые привязаны в таблице к другой таблице. Имеется таблица tabledate с датами и в ней  две колонки 1- date; 2-id_product. Цель: отображение в календаре только тех дат! которые привязаны к id_product. Имеется вот такой скрипт, но он выбирает все даты в таблице sad

s := SQLExecute('SELECT IFNULL(GROUP_CONCAT(DISTINCT DATE_FORMAT(`date`, "%e") ORDER BY `date` ASC), "") FROM tabledate WHERE MONTH(`date`) = '+sMonth+' AND YEAR(`date`)='+IntToStr(Year));

Помогите решить головоломку, я уже третий день по клавиатуре стучу, никак не выходит sad

56

(23 replies, posted in Russian)

k245 wrote:

То есть заставку можно добавить и отображать её до подключения к БД MySQL, но после того, как в память загрузится EXE + DLL с картинками + создадутся ВСЕ формы приложения. То есть для начала нужно выяснить, что в вашем проекте происходит за эти 10-15 секунд:

Ну я так понимаю за эти 10-15сек идет просто подключение по сети к базам данных.... при успешном подключениии выпадает окно авторизациии пользователей

57

(23 replies, posted in Russian)

senseyesenseye1983 wrote:

у меня Mysql просто на базе Navicat.
спасибо за подробное объяснение. Я думал что можно как то сделать после нажатия .exe быстрый запуск какой нибудь картинки чтоб дать пользователю понять что сейчас идет подключение к базам те самые 15-20 сек. Но я так понимаю из Вашего ответа это очень проблематично будет сделать..

Ну отключить автоматической подключение тоже сначала пользователи  подключаться к базам ( априори они не должны знать пароли и логины) ну а потом как подключились еще и для каждой учетки пароль вводить - это на мой взгляд через чур ))

58

(23 replies, posted in Russian)

у меня Mysql просто на базе Navicat.
спасибо за подробное объяснение. Я думал что можно как то сделать после нажатия .exe быстрый запуск какой нибудь картинки чтоб дать пользователю понять что сейчас идет подключение к базам те самые 15-20 сек. Но я так понимаю из Вашего ответа это очень проблематично будет сделать..

59

(23 replies, posted in Russian)

Подскажите пожалуйста есть ли возможность сделать заставку вначале когда щелкаешь на exe. так как до момента подключения к базам данных примерно сек 10-15 - и эти 10-15 сек можно сделать так чтоб пользователь знал что при нажатии на ярлык запуска программы через 2-3 сек появлялось окно которое информирует о загрузке - когда происходит загрузка формы frmlogin окно приветствия загружается ?

DriveSoft wrote:

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


Либо рабочий файл базы данных модифицировать вручную, чтобы его структура соотвествовала структуре новой версии проекта, это можно сделать например программой SQLite Studio.


Еще один вариант, это записать в базу данных номер ее версии, а в проекте написать скрипт, который будет обновлять структуру БД до необходимой версии, удаляя или добавляя таблицы и поля.

А как выглядит этот скрипт? Пример для MySQL

61

(1 replies, posted in Russian)

Возможен ли такой сценарий в MVDB?

При нажатии на таблицу осуществляем поиск через textbox ( его можно срыть )
dbgrid.datasource.dataset.locate ?

Подскажите а как запомнить при входе Логин и пароль когда при этрм сам логин вводится в Text ? Тоесть на дее мы имеем 2 текстовых поля логина и пароля ставим галочку и при следующем запуске запоминаетcя

63

(13 replies, posted in Russian)

DriveSoft wrote:

Переделал немного проект для MySQL

А можно изменить цвет выделяемого цвета с черного например на красный ?

Поправь пожалуйста если я где то ошибся:


procedure frmStart_OnShow (Sender: TObject; Action: string);
var ok: boolean;
begin
ok:=false;
     {$MySQL disable_connectdialog}
     frmStart.MySQLConnection.Server := '192.168.1.1';
     frmStart.MySQLConnection.Port := 3306;
     frmStart.MySQLConnection.Username := 'mvb';
     frmStart.MySQLConnection.Password := '123';
     frmStart.MySQLConnection.Database := 'base';
       try
       // попытка 1...
    ok:=true;
    frmStart.MySQLConnection.Connect;
  except
  end;
  if not ok then
     frmStart.MySQLConnection.Server := '192.168.0.1';
     frmStart.MySQLConnection.Port := 3306;
     frmStart.MySQLConnection.Username := 'mvb';
     frmStart.MySQLConnection.Password := '123';
     frmStart.MySQLConnection.Database := 'base';
     ok:=true;
     except
  try
    frmWait.Close;
    ShowMessage('Проверте подключение к базе данных');
    frmStart.Close;
  end;
     if frmStart.MySQLConnection.Connected then
     begin
    UpdateDatabase(''); // to fill ComboBoxes

    // if you have TableGrid on first form with option
    // "Enable auto execution", you should call method
    // dbUpdate manually
  end;
  begin
     sUserName := '"'+GetUserName+'"';
     sComputerName := '"'+GetComputerName+'"';          ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  end;

sparrow wrote:

Вот так и вставляете в основной части скрипта

<---- вот тут ) до begin end;

begin

end.

самый верхний пост DriveSoft с примером и картинкой.


Ну у меня 2 ip адреса : 192.158.1.1 если на него не подключаемся то пробуем 192.168.1.0

Кто нибудь помогите пожалуйста

Спасибо за скрипт а подскажи в какой части моего скрипта вставить твой ?


procedure frmStart_OnShow (Sender: TObject; Action: string);
begin
     {$MySQL disable_connectdialog}
     frmStart.MySQLConnection.Server := '192.168.1.1';
     frmStart.MySQLConnection.Port := 3306;
     frmStart.MySQLConnection.Username := 'mvb';
     frmStart.MySQLConnection.Password := '123';
     frmStart.MySQLConnection.Database := 'newbase';
       try
    frmStart.MySQLConnection.Connect;
  except
    frmWait.Close;
    ShowMessage('Проверте подключение к базе данных');
    frmStart.Close;
  end;
     if frmStart.MySQLConnection.Connected then
     begin
    UpdateDatabase(''); // to fill ComboBoxes

    // if you have TableGrid on first form with option
    // "Enable auto execution", you should call method
    // dbUpdate manually
  end;

68

(5 replies, posted in Russian)

vovka3003 wrote:
vovka3003 wrote:

Возможно.

k245 wrote:

Подтверждаю: возможно и даже более чем )))

senseyesenseye1983 wrote:

Все разобрался smile

Ну молодцы ж мы..!))

Только вы зачем-то посчитали ноги а затем раздели на 4 и таким образом узнали количество голов в стаде.)
Достаточно было использовать OnChange нужного поля и в этом событии присваивать лейблу Caption.

Да супер )

69

(0 replies, posted in Russian)

Люди добрые как будет выглядеть скрипт:
При выборе combobox1 - выбираем нужную запись ( к этой записи присвоено id другой таблицы, нужно чтобы она автоматически подставиться в combobox2 который ниже)
Для combobox1 таблица в базе данyых называется Employees
Для combobox2 таьлица в базе данyых называется Price
Как сделать так чтоб при выборе из таблицы employees в combobox1 - подставлялось нужное значение из таблицы price в combobox2
Помогите пожалуйста!!!

Подскажите как реализовать скриптом подключение к базе через 2 ip адреса
Например в локальной сети через есть 2 подсети и нужно чтобы использовалось 2 ip адреса при подключении к базе

71

(3 replies, posted in Russian)

derek wrote:

Здравствуй,
Вы связали объект monthcalendar1 с таблицей и именем поля, которое содержит дату? Возможно, это проблема.
См. Прилагаемый файл.
С уважением,
Derek.

Подскажи пожалуйста а как это будет выглядить на MySQL

72

(5 replies, posted in Russian)

procedure Form1_OnShow (Sender: TObject; Action: string);
begin
  if sqlexecute('select count(*) from label') = 0 then sqlexecute('insert into label (cap) values ("default")');
  form1.label3.Caption := sqlexecute('select cap from label');
end;

procedure frmLabel_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
  sqlexecute('update label set cap = "'+frmlabel.edit1.text+'"');
  form1.label3.Caption := sqlexecute('select cap from label');
end;

Все разобрался smile

73

(5 replies, posted in Russian)

Привет программсты! Подскажите пожалуйста возможно сделать следующее: В Textbox прописываем любое слово, сохраняем кнопкой и на форме показывает то что сохранили  в Label?

74

(5 replies, posted in Russian)

sparrow wrote:

Такая проблема во времени не наблюдалась.
Если проблема только на вашем компе, начните с него.
Если поиск у вас обычный, с вводом и нажатием кнопки поиск, то задержка при вводе текста может быть связана
с програмным обеспечением на компе.
Если поиск у вас инкрементный, то смотреть нужно и на своем компе и в сторону MYSQL.
Пауза(торможение) обычно уходит на посылку запроса и возвращение результата.
Зависит где установлен сервер, связь и т.д..
А также поиск по какой маске(как осуществляется), в каких таблицах, какие типы полей, кол-во записей и еще
много чего.
В MYSQL есть логи медленных запросов, есть возможность исследования (explain) запроса.



В обоих случаях, если только вы ничего специфического в программе не сотворили.
Повторю еще раз, такая проблема не наблюдалась.

Да вроде окно с таблицей и поиском в базе 1000 человек. Специфического ничего не делал...Работает по сети изернет локальная 1 gb  сек
Вначале все ок после простоя программы какое то время быстро вообщем в поиске не наберешь начинает подтормаживать,,, даже не знаю уже что делать ...

75

(5 replies, posted in Russian)

vovka3003 wrote:

Ввод и запрос выполняются синхронно, в одном потоке, поэтому тормоза. Можно несколько локализовать эту проблему через таймер.

Можно поподробнее?