Добрый день. сегодня после компиляции программы в версии 4.2. стала появятся сообщение "blob".

при двойном клике по таблице просто открываю файл. (в 4.1. работало без сообщения)

Код ниже.

procedure reg_koresp_TableGrid1_OnCellDoubleClick (Sender: TObject; ACol, ARow: Integer);
var
     s10: string;
begin

     s10 := SaveFileFromDataBase('Pril_dokumentiki', 'pril_file', reg_koresp.TableGrid1.dbItemID); // save file to disk and get filename in system temp folder
     if FileExists(s10) then OpenFile(s10) else ShowMessage('Нет прикрепленного файла.');
end;

Сообщение в прикреплении

Добрый день!
Нужно создать структуру БД по приложенной форме (структура предприятия). А добавляемые новые пользователи далее должны в конечном итоге принадлежать одному из структурных подразделений. т.к. структура разной глубины иерархии не могу понять как такое делается. Желательно при изменении структуры предприятия - структура БД не должна меняться.

Добрый день.
А есть ли пример с использованием подключения и работы с двумя БД MySQL

Убрал в SQL запросе апостроф и заработало. Подскажите в каких случаях нужно применять апострофы.
Код без апострофа

SELECT
documentiki.Reg_nom,
documentiki.data_reg,
organization.name_org,       
documentiki.kr_soder,
kan_tip.tip_kan,
kan_grup.grup,
Status_koresp.status,
documentiki.id,
kan_grup.id,
documentiki.id_Status_koresp,                
documentiki.id_kan_grup,
documentiki.id_organization,
kan_grup.id_kan_tip

FROM documentiki 
LEFT OUTER JOIN Status_koresp ON documentiki.id_Status_koresp=Status_koresp.id 
LEFT OUTER JOIN kan_grup ON documentiki.id_kan_grup=kan_grup.id 
LEFT OUTER JOIN organization ON documentiki.id_organization=organization.id 
LEFT OUTER JOIN kan_tip ON kan_grup.id_kan_tip=kan_tip.id    

                                                                                          
                                                                               
WHERE {Edit11}  
DriveSoft wrote:

Пожалуйста приложите проект, и опишите конкретные шаги, которые приводят к ошибке.

Проект использует MY SQL, как то высылал но без данных так у нас и не получилось.

В архиве скрины с действиями.

При заполнении таблицы кнопкой SQL запрос и при двойном клике по таблице (для просмотра записи) выдается ошибка. Скрины во вложении. Не могу понять причину.

57

(33 replies, posted in Russian)

DriveSoft wrote:

Что нового:

- Добавлен альтернативный вид для компонента TableGrid (slide), пример http://myvisualdatabase.com/forum/misc. … download=1

Добрый день, в новом TableGrid (slide) можно сделать формат типа (Заголовок1 | Поле 1 | Поле 2) - в одной сроке

В новой версии 4b что то кардинально изменилось? стали появятся где то секундные задержки перед открытием/закрытием форм, ранее такого не наблюдалось.

Вопрос.
Как можно сделать следующее:
По определенному фильтру загрузить записи в таблицу, а дальнейшие поиски, сортировки и т.д. делать уже по загруженным данным в таблицу? Или все виды поисков  (dbFilter, кнопкой поиск, кнопка SQL запрос) и сортировок всегда обновляют данные с сервера БД.

60

(6 replies, posted in Russian)

DriveSoft wrote:

В этой теме
http://myvisualdatabase.com/forum/viewtopic.php?id=3006


вам нашли пример реализации TreeView скриптом, но он довольно трудный, в будущем планируется его реализация без скриптов.

Планируете ли в ближайшее время реализовать?

DriveSoft wrote:

видимо присутствуют записи с пустой датой, поэтому можно вставить проверку ValidDate

If (StrToDate(ValidDate(<Report."porych_gd.planovaya_data_isp">)) < StrToDate(ValidDate(<Report."porych_gd.data_ispol">))) and (<Report."status_porychGD.status"> = 'Выполнено')  then memo10.font.color := clRed;

если не заработает, приложите пожалуйста проект, проверю.

Действительно была ошибка с пустой датой, с ValidDate не получилось разобратся, тоже ошибку выдает, пришлось просто не делать проверку если даты нет.

if <Report."status_porychGD.status"> = 'Выполнено' then
   begin
   If StrToDate (<Report."porych_gd.planovaya_data_isp">) < StrToDate (<Report."porych_gd.data_ispol">) then memo10.font.color := clRed;    
   end;

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

DriveSoft wrote:
Evgeniy D wrote:

Так тоже пробовал, выдает ошибку - is not a valid date

Отчет создается с помощью кнопки "Отчет" или "Отчет (SQL)", если второе, то какой формат даты используется?

С помощью кнопки "Отчет"

pt.82 wrote:

1. Спасибо!!!
2. Набросал проект если получится с multiselect будет оч неплохо. планируется для канцелярии наподобии документооборота в дальнейшем с напоминаниями, отчетами и т. д.

Не забудьте потом проектом поделиться ))

Так тоже пробовал, выдает ошибку - is not a valid date

Коллеги подскажите как сравнить две даты:
Пока код такой (в скрипте в FastReport):

If (<Report."porych_gd.planovaya_data_isp"> < <Report."porych_gd.data_ispol">) and (<Report."status_porychGD.status"> = 'Выполнено')  then memo10.font.color := clRed;

Но похоже сравнивает как строки. Надо сравнить собственно две даты.
Подскажите плиз.

67

(28 replies, posted in Russian)

DriveSoft wrote:
tiopentalna wrote:

Здравствуйте!
В настройках TableGrid есть пункт Фильтр.
Можно ли там указать определенные условия?
Например вывод записей в таблицу, только если заполнена определенный атрибут таблицы.
Все остальные не выводить.
Есть ли такая возможность?
Как правильно написать?

Здравствуйте.


Да, вы можете указать там условия, их синтаксис аналогичен, если бы вы писали условие в SQL запросе в секции WHERE
например


fieldname is NOT NULL

По данному случаю можете привести пример как можно в филтре применить LIKE "'+poruch_gd.Edit4.Text+'%".
например в этой строке:

poruch_gd.TableGrid1.dbFilter:= '(porych_gd.na_kontrole=1) AND (porych_gd.podrazp_isp = "'+poruch_gd.ComboBox1.Text+'")';

Просто супер! Сенкс

69

(1 replies, posted in Russian)

Подскажите как в SQL отчете можно использовать переменные используемые в MVDB (в частности в WHERE)

SELECT
porych_gd.nom_porGD,
porych_gd.text_porych,
porych_gd.otv_isp,
porych_gd.planovaya_data_isp,
porych_gd.uroven,
status_porychGD.status,   
porych_gd.ish_data_isp,
porych_gd.tek_sost,
porych_gd.na_kontrole,
porych_gd.osobuy_kontrol,
porych_gd.P1
                       
FROM porych_gd                   
                           
LEFT OUTER JOIN status_porychGD ON status_porychGD.id=porych_gd.id_status_porychGD 
                                   
WHERE porych_gd.otv_isp = '+sUser+'  
                              
Order By porych_gd.uroven asc 

А если TableGrid отсортирован при помощи dbfilter, то как можно в отчет вывести только те записи которые в настоящий момент видны в TableGrid?

Вопрос решен. Дело было в типах данных

EndS:= SQLExecute ('SELECT SUBSTRING_INDEX ("'+nn+'",".","'+inttostr(iip)+'")');

Собственно есть функция addzerro которая в нужном порядке преобразует строку. Нужно во всей таблице porych_GD поле uroven преобразовать с помощью функции, в функцию должно передаваться значение nom_porGD из таблицы nom_porGD (исходные данные для преобразования).
Вопрос собственно - как в запросе вызвать пользовательскую функцию addzerro ()

делаю как то так но увы не работает:

SQLExecute('UPDATE porych_GD SET uroven = "'+addzerro (nom_porGD)+'"');

И еще вопрос.
for i:=1 to 5 do
begin
EndS:= SQLExecute ('SELECT SUBSTRING_INDEX ("'+nn+'",".",i)');                 
end;

Не пойму как в SUBSTRING_INDEX использовать с I - счетчик. т.е. заместо i если написать цифры то работает, а нужно зациклить.

В примере с деревом используется SQLQuery - поясните чем от SQLExecute отличается?

А как сделать сортировку примерно такую же только:
Сортировка колонки вида n1.n2.n3.....n(бесконечное).

n1, n2 и т.д. могут быть от 1 до бесконечности.

и для MySQL
смотрел пример http://myvisualdatabase.com/forum/viewtopic.php?id=3343 но не получилось