У меня одиночная лицензия . Установлена на 3 х разработческих компах( 2 в домашней лаб. и один в офис) . Работаю я один , под мое честное слово Дмитрию !
52 2015-01-15 11:39:33
Re: большая база, лагает (28 replies, posted in Russian)
Спасибо !
Извините , мог бы и сам догадаться
53 2015-01-15 09:40:27
Re: большая база, лагает (28 replies, posted in Russian)
Добрый день !
Попробовал из нового :
Form1.TableGrid1.dbLimit := 1000;
Работает здорово . Но если бы появилась возможность выводить не первую 1000 , а последнюю
54 2015-01-14 19:24:33
Re: Как сделать инкремент числового поля в записи? (7 replies, posted in Russian)
Добрый вечер!
DriveSoft пишет :
Чтобы не было проблем с разными версиями программы в локальной сети, можно программу запускать непосредственно из расшаренной папки, таким образом все будут работать с одной и той же копией программы.
Подтверждаю . Именно так работает мой проект уже 5 мес.
На компе каждого пользователя завел ярлыки на ЕХЕ в расшаренной папке . У каждого пользователя свой парольный доступ
к своему разделу ( кнопке на form1 ) . Если сеть по скорости выше 50 мбит , то вы даже не заметите разницы в загрузке . А вот для себя
( для администрирования ) настроил openVPN , заменил прот.tcp на udp ( он меньше гоняет заголовки ) и получил свою VPN сеть.
Новую версию просто копирую на сервер (С ЗАМЕНОЙ СТАРОЙ ) , и даже не прошу пользователей закрыть программу. Сам свою прогу запускаю у себя на компе , тк все таки это не локалка и долго будет запускаться .
Недостаток пожалуй один : проект получается большой , разделять на 2 или 3 уже и не хочется . Но программа Дмитрия пока надежно терпит
мои 62 формы .
55 2015-01-12 20:27:45
Re: загрузка локальной сети при обращении к базе (3 replies, posted in Russian)
Добрый вечер!
Решил поделиться небольшим опытом .
Тоже работаю по локаль. сети(5 пользователей) . База тяжелая (35-40 таблиц). Сам к серверу на удаленке( ping до сервера 17 мс).
База была 23 мб . Вынес фотки - теперь 1,65 мб . Проблем пока нет (фу,фу,фу).Предполагал , что упрусь в скорость , поэтому оптимизировал скрипты с запросами SQL . Первое : выяснил , что прямой SELECT в переменную работает гораздо быстрее чем внутри INSERT или
UPDATE .
Т. е. вот такое работает гораздо быстрее :
begin
id_Mater := SQLExecute('SELECT id_Materials FROM MatZayav2 WHERE id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID) ); // читаем идентификатор родительской таблицы
Nom := SQLExecute('SELECT NomNak FROM MatZayav2 WHERE id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID) );
NakDat := SQLExecute('SELECT DataNak FROM MatZayav2 WHERE id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID) );
Otkud := SQLExecute('SELECT Kuda FROM MatZayav2 WHERE id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID) );
Kud := SQLExecute('SELECT Otkuda FROM MatZayav2 WHERE id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID) );
Vozvr := StrToFloat(SQLExecute('SELECT Vozvrat FROM MatZayav2 WHERE id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID)));
VozNet := SQLExecute('SELECT OtchZaPriz FROM MatZayav2 WHERE id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID) );
ZaN := SQLExecute('SELECT NomerZayav FROM MatZayav2 WHERE id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID) );
ZaDat := SQLExecute('SELECT DataZayav FROM MatZayav2 WHERE id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID) );
SQLExecute('INSERT INTO Nakladnie (Nomer,NakData,Otkuda,Kuda,Vozvrat,VozvrNet,id_Materials,ZayavNom,ZayavData) VALUES ("'+Nom+'","'+NakDat+'","'+Otkud+'","'+Kud+'",'+ReplaceStr( FloatToStr(Vozvr),',','.')+',"'+VozNet+'",'+IntToStr(id_Mater)+',"'+ZaN+'","'+ZaDat+'")');
end;
чем например такое :
SQLExecute('INSERT INTO AktBrakMat (NomAkt, DataAkt, KolMat, id_Materials, NomNak, DataNak, KolichVnakl) SELECT MatZayav2.NomNast,MatZayav2.ZakroyDataFakt,MatZayav2.BrakPolot,MatZayav2.id_Materials,MatZayav2.NomNak,MatZayav2.DataNak,MatZayav2.MaterKolFakt FROM MatZayav2 WHERE MatZayav2.id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID));
да и вероятность нарваться на locked уменьшается .
Если я не очень понятно , то пишите , раскрою измерения подробней.
Да , еще . Если у вас проходит много удалений из базы , не ленитесь делать базе (периодически) сжатие .
56 2015-01-12 14:33:12
Re: No such table (4 replies, posted in Russian)
Уже попробовал ! Здорово ! Спасибо !
57 2015-01-12 07:35:52
Re: Заголовки полей грида (24 replies, posted in Russian)
Добрый день !
Заметил ошибку в последней бета 1,48 , ( ссылка на нее в этой теме выше).
В гридах идет неправильное отображение чисел типа REAL .
58 2015-01-11 07:03:43
Re: Перешел на режим LinkFile (15 replies, posted in Russian)
Добрый день !
"Попробуйте пожалуйста добавить это frmTovar.Show;" -- это не помогло . Но в процессе
тестирования определил следующее :
Этот эффект возникает только тогда , когда мой проект запускается под MVDB , т. е .
сразу после компиляции . Когда идет запуск моего EXE - ка вне среды MVDB ---- все проходит правильно .
Думаю это связано с особенностями перегрузки памяти . Проект обьемный . Я не думаю , что тут какая то
Ваша проблема .
59 2015-01-06 17:24:49
Re: Перешел на режим LinkFile (15 replies, posted in Russian)
В 1,47 с данной .dll не работают скрипты . Все остальное работает . ( пробовал)
Скриншот не поможет . Я пробую пояснить по другому : запускаю программу --- открывается Form1,
на этой форме есть кнопка -- показать форму --- открывается Form2 , с Form2 открывается Form3.
На Form3( это frmTovar) TableGrid2 и DBImage1. Кликаю запись в TableGrid2 и жду , когда в DBImage1
появится изображение ( т.е. выполняется frmTovar.DBImage1.LoadFromDatabase('Shirina', 'RaskladFoto', frmTovar.TableGrid2.dbItemID);)
В зависимости от скорости инета длится это 4-5 сек. . На курсоре часики крутит . Как загрузка кончилась, на мониторе картинка едва
заметно моргнула и Form2 оказывается верхней , (т.е. перекрывает Form3), но Form2 не активна ( кликай по ней где хочешь - не реагирует)
Из под Form2 виден небольшой фрагмент Form3 . Я по этому фрагменту кликаю , и Form3 стала на верхний слой , те в правильное положение
Вот такой эффект , но только когда на удаленке . Когда все на одном компе или в локалке , то скорость передачи большая и такого эффекта
не наблюдается.
Про CopyTo : именно это я и имел ввиду (файл будет переименован в "имя_файла(1)"), --- записи С одинаковым файлом в БД имеют ссылки
не на один файл , а каждый на свой дубликат .. Поэтому при удалении записи можно удалить и файл .
Простите за эпистолярный жанр , но мне кажется Вам интересны эти нюансы .
60 2015-01-06 13:44:33
Re: Перешел на режим LinkFile (15 replies, posted in Russian)
Спасибо !
Все работает .
Т.к. я работал по удаленке , то фотка грузится примерно 4 сек (220 Кб).
По выходу из загрузки перекидывает открытые формы , и сверху оказывается
неактивная форма . Приходится шлепать по активной , что бы стала верхней .
Есть ли возможность по выходу из этой процедуры активную форму заставить стать верхней ?
procedure frmTovar_TableGrid2_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
frmTovar.DBImage1.Clear;
frmTovar.DBImage1.LoadFromDatabase('Shirina', 'RaskladFoto', frmTovar.TableGrid2.dbItemID);
?? frmTovar ???
end;
И еще ---- : Когда вынес фотки в папку , база соответственно уменьшилась с 22 Мб до 1.5 Мб , и соответственно
пока не было ошибок DataBase locked . 8 го проведу более серьезные тесты ( одновременная работа 3х локальных и 2х удаленных
пользователей . О результатах сообщу .
Поэтому режим LinkFile важная и очень полезная штука . Хотя в дальнейшем хотелось бы иметь возможность автоудаления файла
из папки при удалении записи , т.к CopyTo все равно дублирует одинаковые по имени файлы .
61 2015-01-06 12:37:40
Re: Перешел на режим LinkFile (15 replies, posted in Russian)
Простите ради Бога !!!
Сразу не понял , КАКОЙ ВАРИАНТ . Вроде работает .
Чуть позже сообщу о полном тестировании .
62 2015-01-06 12:24:30
Re: Перешел на режим LinkFile (15 replies, posted in Russian)
Добрый день !
Скачал builder.dll в папку с 1.48 бета . В проекте убрал оператор
frmTovar.DBImage1.dbFileName := imgFile;
Ничего не изменилось .
Т.е. :
-- без этого оператора, по клику на DBImage1 не разворачивает просмотр на весь экран
-- При подключении к базе на сервере ( т.е база с папкой фоток не в папке с моим проектом )
выдает ошибку , что не найден путь к файлу и указывает путь к папке моего проекта
63 2015-01-06 07:07:31
Re: Перешел на режим LinkFile (15 replies, posted in Russian)
Не знаю как добавить к imgFile путь расположения файла базы !
64 2015-01-05 19:44:50
Re: Перешел на режим LinkFile (15 replies, posted in Russian)
Еще одна проблемка .
Когда все в одной папке - все ок.
Перенес на сервер файл базы и папку с файлами - запись проходит правильно(на форме сохранения записи ), а также при редактировании
записи показывает сохраненное изображение . А вот в режиме показа по клику сообщает , что не может найти файл , и ссылается на путь к папке где расположен ЕХЕ файл программы . В таблицу БД _filename прописывает правильно ( проверял : \photo\ 0123.jpg ).
65 2015-01-05 07:49:54
Re: Перешел на режим LinkFile (15 replies, posted in Russian)
Добрый день !
Спасибо , файл находит , но по клику по DBImage1 не переходит на просмотр ( на весь экран ). Активен
только значек загрузки изображения .
66 2015-01-04 14:29:28
Topic: Перешел на режим LinkFile (15 replies, posted in Russian)
Добрый день !
Убрал все изображения из базы .
Подскажите пожалуйста как вывести изображение теперь по клику записи в гриде ?
Из базы было так :
procedure frmTovar_TableGrid2_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
frmTovar.DBImage1.Clear;
frmTovar.DBImage1.LoadFromDatabase('Shirina', 'RaskladFoto', frmTovar.TableGrid2.dbItemID);
end;
А как по ссылке из файла ?
67 2014-12-31 07:31:23
Re: С Новым годом! (5 replies, posted in Russian)
Присоединяюсь !
Поздравляю всех участников форума !
Прекрасно провели год в общении одним дружным коллективом !
68 2014-12-26 07:48:52
Re: Ошибка "database is locked" (31 replies, posted in Russian)
С НАСТУПАЮЩИМ !
69 2014-12-25 11:15:10
Re: Ошибка "database is locked" (31 replies, posted in Russian)
Добрый день !
"database is locked" весьма часто возникает при работе в локальной сети.
Прошу совета ! Проект большой , пять пользователей в локалке . DB файл и папка с программой
находятся на локальном сервере(под server 2008) . На пользовательских компах только ярлыки .
Насколько я понимаю ситуацию, эта ошибка возникает при обработке SQL запросов к файлу базы
одновременно от нескольких " задач " . Формирует эту ошибку sqlite.dll и говорит о том , что файл занят
действием другого запроса . Существует ли какой то параметр настройки времени ожидания ответа на запрос
типа "Timeout" , увеличив который , можно было бы избежать появление этой ошибки ?
2. Или может оптимальнее расположить проги на пользовательских компах , файл базы на сервере ?
70 2014-12-20 06:38:05
Topic: Возможность объединить SQL запросы в " транзакцию" . (2 replies, posted in Russian)
Добрый день !
При многопользовательской работе по сети может возникнуть ошибка Dtb locked или I/O err при выполнении
SQL запросов типа INSERT или UPDATE . При исполнении последовательности таких запросов скриптом,
возникает проблема недоделанного действия . Есть ли какие то возможности объединения последовательности запросов
в базу в одну транзакцию ?
71 2014-12-13 09:31:31
Re: Бегущая строка (13 replies, posted in Russian)
Мне кажется надо в вашем примере добавить деактивацию таймера при закрытии главной формы :
procedure Form1_OnClose (Sender: string; Action: string);
begin
Timer.Free;
end;
72 2014-11-28 09:32:11
Re: Регистрация (41 replies, posted in Russian)
Добрый день !
А начиная с какой версии вы планируете начать реализовывать это :
- Поддержка клиент-серверной работы программы (используя FireBird)
?
73 2014-11-26 07:24:25
Re: формат даты (9 replies, posted in Russian)
Подскажите кто может как проверять исключить из проверки год.
Заранее благодарю и поймите правильно - праздновал денюху - неделю буду притормаживать
Поздравляю с Днем рождения !!!
74 2014-11-08 17:55:05
Re: Скидка участникам форума 50% (15 replies, posted in Russian)
Уважаемый Дмитрий ! Зачем вы реагируете ?
На форуме большинство понимают что такое труд ...
Кстати , друзья , давайте уже работать . На англоязычном форуме нет никаких обсуждений цены .
75 2014-10-28 20:19:27
Re: Регистрация (41 replies, posted in Russian)
Я за 2 мес выполнил 1/3 проекта по автоматизации производства , и ВНЕДРИЛ . Те кто работал = знают как написать понятный
рабочий стол для пользователя , особенно в глубинке. Скорость , с которой происходит оформление экрана радует и освобождает
время для разработки собственно проекта . Я программист с 30 летним стажем . Больше я занимаюсь встраиваемыми системами
( Ассемблер , т.к мало места и нет ОС ) Естественно С++ и Паскаль , там где можно. А управлять DB начинал с DBase2 и FoxPro,
и нашел себе удобную вещь только сейчас . Мне ненужна избыточность , тк я в проектах сочетаю много направлений в программировании.
Кстати за эту 1/3 я уже получил гонорар .
И Дмитрий должен получать гонорар за хороший проект и обучение форумчан Паскалю и SQL запросам.
Кстати , подскажите я в скриптах могу использовать ассемблерные вставки ?