Как мне кажется проще всего настроить синхронизацию системного времени с сервером и брать системное время .
Объясню почему :
На раскуривание NTP протокола и написание чего-то вразумительного у Вас уйдет уйма времени , а так как это фастскрипт (ключевое слово скрипт) то с точностью будут проблемы . Гораздо проще синхронизировать систему(средствами системы) и брать с неё время.Итого быстрее проще и точнее .
В случае с парком машин целесообразно поднять локальный сервер времени .
ИМХО
26 2018-01-09 22:35:10
Re: Как получить точное время из внешнего источника? (7 replies, posted in Russian)
27 2017-12-27 20:31:07
Re: Как передавать переменные в FastReport (2 replies, posted in Russian)
Мне было нужно отправлять на печать как данные внесенные в таблицы так и некоторые данные (расчеты , время и тд) которые не вносились в таблицы но нужно было их напечатать . Плюс нужна была возможность иногда их редактировать перед печатью.
Я создал временную таблицу (например так http://myvisualdatabase.com/forum/viewt … 526#p13526) со всеми необходимыми полями и внес туда все что мне надо напечатать открывал окно редактирования при необходимости и отправлял посредством SQL отчета ( SELECT * FROM VremTable WHERE id=1 ) в репорт на печать.
Этим я убил сразу 2 кролей , первое это возможность редактировать перед печатью без изменения данных в таблицах, второе передача данных из компонентов в репорт .
п.с.
надеюсь такое решение кому нибудь пригодится.
28 2017-11-12 09:24:20
Topic: Создание файла базы данных отличного от sqlite.db (1 replies, posted in Russian)
День добрый !
Меня собственно интересует возможность создания (средствами MyVisualDatabase) файла базы данных отличного от sqlite.db ( MyFile.db ) для хранения увесистых таблиц несвязанных друг с другом и возможности их переноса (именно переноса а не копирования). Так же возможность писать и читать их.
Возможно ли это , если да то как ? (Без того что бы сервер sql подымать)
29 2017-11-11 17:52:01
Re: Скрипты, рекурсия и SQLQuery() (12 replies, posted in Russian)
Данный код считает сумму чисел от 1 до 5 .
Про рекурсию можно почитать например тут http://www.tvd-home.ru/recursion .
Рекурсию без четкого понимания того что делаешь лучше не применять и обойтись циклами , так как можно напороться на проблемы .
В данном случае недоделанный (имхо) стек в фастскрипте заставил k245 протерять пару дней на поиски проблемы .
Честно говоря само наличие раздела "Реализованные и нереализованные особенности" в букваре к фастскрипту наводит на размышления .
30 2017-11-10 10:12:02
Re: Скрипты, рекурсия и SQLQuery() (12 replies, posted in Russian)
Моя мысля была относительно первого вашего алгоритма .
И заключалась в том чтобы :
Глобально объявить массив датасет
var
Results : array of Tdataset ;
IndexRes : int = 0 ;
procedure LoadMenu
begin
IndexRes := IndexRes +1;
SetLength(Results,IndexRes) ;
.....................................
....................................
SQLQuery('SELECT id, name, form FROM main_menu WHERE id_parent is null', Results[IndexRes-1])
.....................................
......................................
index := Results[IndexRes-1].FieldByName('id').AsInteger;
LoadMenu( miChild, index );
......................................
......................................
IndexRes := IndexRes -1;
SetLength(Results,IndexRes) ;
end;
31 2017-11-09 12:19:10
Re: Скрипты, рекурсия и SQLQuery() (12 replies, posted in Russian)
SQLQuery Возвращает данные только в DataSet посему без него только функцию SQLExecute разве что можно задействовать для получения данных из БД .
Пришлите ваш проект мне на почту , только обрежьте все кроме того что касается непосредственно меню (если хотите) . Есть мысль ))))
32 2017-11-09 08:14:29
Re: Скрипты, рекурсия и SQLQuery() (12 replies, posted in Russian)
.....объект Results уничтожается....
....а ссылка на предыдущий экземпляр видимо не восстанавливается....
может попробовать разделить , например один датасет заполнить именами окон а второй всем(по каждому окну в другой процедуре ) что есть и обходить в цикле да заполнять менюшки . может некрасиво но по идее будет работать .
33 2017-11-09 05:09:52
Re: Скрипты, рекурсия и SQLQuery() (12 replies, posted in Russian)
я рекурсию как то использовал в функции (в фастскрипте)
Попробуйте завернуть процедуру как функцию
34 2017-11-08 06:01:23
Re: Требуется помощь (4 replies, posted in Russian)
Для начала проверьте настройки мыши http://c2n.me/3PgEMQ3
так как при установке сторонних тем могут быть косяки .
Так же посмотрите свойства окна http://c2n.me/3PgEWXB и аналогичные у объектов .(в Вашем проэкте)
35 2017-11-07 07:54:38
Re: Требуется помощь (4 replies, posted in Russian)
Скорее всего у вашего товарища неправильно выставлено разрешение монитора , может даже проблема в некорректной работе видеодрайвера (из за чего и неправильное разрешение).
В любом случае вся отрисовка лежит на винде , посему копайте в эту сторону .имхо
36 2017-11-03 09:47:31
Re: Поиск ошибок в скрипте (v.4.0b) (2 replies, posted in Russian)
Возможно, что я очень консервативен, и текстовое главное меню уже не популярно......
Ну это скорее вопрос эргономики . На кнопки обычно вешаются основной функционал а в менюшках прячут второстепенные функции .
....хотя когда-то появление волков-командера для меня было писком и пределом мечтаний . )))
по поводу зависа посмотрите циклы и условия в них (и количество нулей ))) было как то ... )
может какой объект что то ожидает ....
Мне обычно помогает просто очень внимательно все просмотреть , но если долго не нахожу бывает переписываю с нуля ))))
...у Вас нет возврата из процедуры
37 2017-10-17 06:29:21
Re: Кодировка, вместо кириллицы ромбики (21 replies, posted in Russian)
Настройки и кодировки в почтовике полагаю Вы все попробовали ?
Посмотрите справку почтовика там куча всего . (на чтение у меня просто нет времени)
.....и без исходника сложно гадать в чем проблема .
38 2017-10-16 09:38:46
Re: Кодировка, вместо кириллицы ромбики (21 replies, posted in Russian)
О_о а где вы квадратики видите ? в VisualDatabase ? или в полученной почте ?
Возможно нужно произвести обратные действия с текстом так как OpenFile может не понимать русский (не проверял)
39 2017-10-16 09:02:29
Re: Кодировка, вместо кириллицы ромбики (21 replies, posted in Russian)
Саму функцию куда нибудь в кучу с другими где удобно , а применять :
......
var
Stroka_s_Kodom : string ; // переменные должны быть объявлены (имена неважны , я для примера их так назвал)
Stroka_Rezultat : string ;
.....
.....
Stroka_Rezultat := DecodeUTF(Stroka_s_Kodom);
.....
.....
я использовал примерно так ;
st:=HTTPGet('http://n..........................&lang=ru');
Form1.Memo1.Text := DecodeUTF( st) ;
40 2017-10-16 08:09:54
Re: Кодировка, вместо кириллицы ромбики (21 replies, posted in Russian)
Всем Ку ! ( Дмитрию два раза Ку ! )
Если кому поможет то я писал функцию преобразования юникода в читабельный вид .
Например \u041a\u0438\u0435\u0432\u0441\u043a\u043e\u0435, \u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440\u0441\u043a\u0438\u0439 \u043a\u0440\u0430\u0439, \u0420\u043e\u0441\u0441\u0438\u044f = Киевское, Краснодарский край, Россия
function DecodeUTF(stroka:string):string ;
var
dlina,poz : int ;
symvol,promej: string ;
f : Boolean ;
begin
f:=false ;
dlina := Length(stroka);
if dlina > 0 then // Если строка не пустая
begin
if pos('\u',stroka)<>0 then // Если есть юникод
begin
While dlina > 0 do
begin
poz := pos('\u',stroka);
if poz > 1 then
begin
result :=result+ copy(stroka,1,poz-1);
Delete(stroka,1,poz-1);
dlina := dlina - poz +1 ;
end
else
begin
if poz>0 then
begin
symvol:= copy(stroka,5,2);
case symvol of
'10': promej := 'А';
'30': promej := 'а';
'11': promej := 'Б';
'31': promej := 'б';
'12': promej := 'В';
'32': promej := 'в';
'13': promej := 'Г';
'33': promej := 'г';
'14': promej := 'Д';
'34': promej := 'д';
'15': promej := 'Е';
'35': promej := 'е';
'01': promej := 'Ё';
'51': promej := 'ё';
'16': promej := 'Ж';
'36': promej := 'ж';
'17': promej := 'З';
'37': promej := 'з';
'18': promej := 'И';
'38': promej := 'и';
'19': promej := 'Й';
'39': promej := 'й';
'1a': promej := 'К';
'3a': promej := 'к';
'1b': promej := 'Л';
'3b': promej := 'л';
'1c': promej := 'М';
'3c': promej := 'м';
'1d': promej := 'Н';
'3d': promej := 'н';
'1e': promej := 'О';
'3e': promej := 'о';
'1f': promej := 'П';
'3f': promej := 'п';
'20': promej := 'Р';
'40': promej := 'р';
'21': promej := 'С';
'41': promej := 'с';
'22': promej := 'Т';
'42': promej := 'т';
'23': promej := 'У';
'43': promej := 'у';
'24': promej := 'Ф';
'44': promej := 'ф';
'25': promej := 'Х';
'45': promej := 'х';
'26': promej := 'Ц';
'46': promej := 'ц';
'27': promej := 'Ч';
'47': promej := 'ч';
'28': promej := 'Ш';
'48': promej := 'ш';
'29': promej := 'Щ';
'49': promej := 'щ';
'2a': promej := 'Ъ';
'4a': promej := 'ъ';
'2d': promej := 'Ы';
'4b': promej := 'ы';
'2c': promej := 'Ь';
'4c': promej := 'ь';
'2d': promej := 'Э';
'4d': promej := 'э';
'2e': promej := 'Ю';
'4e': promej := 'ю';
'2f': promej := 'Я';
'4f': promej := 'я '; // По окончании написаниия программы удалите пробел после буквы "я" )))(все останется работоспособным)
'b0': promej := '°'; // Градусы это ))) , нужны были ....
else
begin
promej:= '\u';
f := True ;
end;
end;
result := result + promej ;
if f=False then
begin
dlina := dlina - 6 ;
Delete(stroka,1,6)
end
else
begin
Delete(stroka,1,2);
dlina := dlina - 2 ;
end;
f :=False ;
end
else
begin
result := result+ stroka;
dlina:=0 ;
end;
end;
end; // Конец цикла while
end
else result := stroka ; // если нет юникода
end // if dlina > 0 then // Если строка не пустая
else
begin
result:='' ; // Если пустая строка
end;
end;
41 2017-08-21 18:17:27
Re: Флажок падает (7 replies, posted in Russian)
СПС понял .
...привык события описывать сам .В справке, имхо, прояснить сей момент надо.
42 2017-08-20 21:51:13
Topic: Флажок падает (7 replies, posted in Russian)
Если кликнуть по второму флажку программа падает.
Версия 3.5 Win7x64
http://c2n.me/3N5d4pZ
Имя события проблемы: APPCRASH
Имя приложения: 123.exe
Версия приложения: 1.0.0.0
Отметка времени приложения: 59635e35
Имя модуля с ошибкой: ntdll.dll
Версия модуля с ошибкой: 6.1.7601.23796
Отметка времени модуля с ошибкой: 59028db3
Код исключения: c0000005
Смещение исключения: 0002ed2a
Версия ОС: 6.1.7601.2.1.0.768.3
Код языка: 1049
Дополнительные сведения 1: e8ad
Дополнительные сведения 2: e8adce1c2b9e7be834b4063ac3c53863
Дополнительные сведения 3: e8ad
Дополнительные сведения 4: e8adce1c2b9e7be834b4063ac3c53863
43 2016-09-12 08:00:16
Re: Что реализовать в первую очередь? (396 replies, posted in Russian)
В некоторых случаях может понадобиться грид другого вида на подобии журнала учета рабочего времени или школьного журнала успеваемости . То есть заполнение не сверху вниз а с лева на право .( включая редактирование крайнего столбца )
С уважением Яков.
44 2016-08-31 10:53:37
Re: Помогите реализовать поиск в базе данных. (3 replies, posted in Russian)
Алексей , я так понимаю есть некоторый товар партия которого произведена при параметрах и условиях указанных в табличках .
Изначально выбран (ИМХО) неверный подход , у Вас свойства партии имеют в свойствах "номер партии". Понимаю что Вы хотели как то упростить и придать вид всему тому немаленькому количеству свойств но думаю надо было создать таблицу партий со всем тем количеством свойств которые не отъемлемы от номера партии ( кстати нет проверки уникальности при вводе ) , НО упаковать их в текст ( если поиск по свойствам ненужен ) .
Нужно делать запрос по номеру партии и выводить все результаты из всех форм в таблицу поиска по номеру партии.
Запрос то написать можно ( если хотите напишу ) но Вы представляете какой ширины будет Вывод ?
...и это не учитывая что каждый столбец надо хоть как-то вразумительно подписать .
...а если по ошибке для какого то блока свойств будет введен дважды один номер партии ?
думаю проект и в текущем виде можно доработать до рабочего ( дабы не запутаться в названиях половина из которых мне непонятна :-D )
если не торопитесь то попробую переделать Ваш проект в течении недели по наличию времени .
45 2016-08-24 11:44:28
Re: Поиск sql (8 replies, posted in Russian)
Тогда вот как то так:
SELECT name FROM imena WHERE name LIKE '{Edit}'
UNION ALL
SELECT name FROM imena WHERE id =
CASE
WHEN (SELECT COUNT(Name) FROM imena WHERE name LIKE '{Edit}')>0 THEN NULL
ELSE 1
END ;
46 2016-08-24 08:14:22
Re: Поиск sql (8 replies, posted in Russian)
Для младшей версии сами переделаете , там не сложно
47 2016-08-23 08:48:50
Re: Поиск sql (8 replies, posted in Russian)
будет лучше если вы приложите пример или проект так как я , например , не понял что означает
"Не найденные совпадения"
Возможно Вы имели в виду присвоение полю значения по умолчанию ?
48 2016-08-18 20:37:30
Re: вычислительное поле (54 replies, posted in Russian)
Если записей будет не много то такое решение пойдет
но имейте в виду при большом количестве записей будет тормозить адски
( я не знаю как обстоят дела с кэшем запросов у SQLite в отличие от сервера)
и в таком случае лучше все таки отказаться от вычисляемого поля и написать процедуру заполнения грида скриптом.
Возможно кто то предложит более "красивую" запись запроса.
49 2016-08-15 12:14:29
Re: вычислительное поле (54 replies, posted in Russian)
...будет Вам с вычисляемым полем , только добавлять запись все равно нужно каким либо способом.
Было бы неплохо видеть проект чтоб понять что не так работает .
( с описанием желаемого )