вот так сработало

AddBanner.DBFile1.dbCopyTo := ExtractFilePath(Application.ExeName) +'Makety\'+ FormatDateTime('dd-mm-yyyy', now);

только это для новых записей работает, а у меня больше 9к записей где путь начинается с \Makety\... можно ли скриптом подставить начало пути?  или только редактировать базу?

Доброго дня! перевел таки свой проект на MySQL, но возникла проблема:

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

DBFile1:
CopyTo: Makety
Type: LinkFile

кнопка сохранить:

procedure AddBanner_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     AddBanner.DBFile1.dbCopyTo := '\Makety\'+ NewZakaz.Edit1.Text +' '+ FormatDateTime('dd-mm-yyyy', now);
end;

версия 4.6

3

(5 replies, posted in Russian)

были похожие глюки, мне помогло это http://myvisualdatabase.com/forum/viewt … 300#p24300

Спасибо! заработало

здравствуйте! та же беда.... обновился до последней версии - импорт перестал работать

да я понимаю, что MySQL лучше, но  29 таблиц, 60 форм, 2000 строк в скриптах и хз сколько во всем этом запросов... программа обрастала функционалом с осени 14 года... в общем даже боюсь начинать переводить на мускул )))

Столкнулся с тем, что проработав 1,5 года и накопив больше 20000 связанных записей в таблицах база начала глючить. или зависает при подключении второго пользователя или просто выдает ошибку при попытке сохранения записи. файл базы всего 3 с копейками мегабайт.

пробовал делать VACUUM - помогло на пару месяцев, потом и эта команда не спасала.

что помогло (по крайней мере 2 недели полет нормальный)  в программе SQLite Expert в настройках базы сделал следующие изменения:
cache_size 6000  (было 2000)
encoding UTF-8  (было UTF-16le)
page_size 4096   (было 1024)

есть ли у кого такие проблемы с большими базами?

в программе одновременно работают 8-10 человек по сетке

DriveSoft wrote:

Спасибо за найденную ошибку, поправил, скачайте пожалуйста снова последнюю версию
http://myvisualdatabase.com/download/myvisualdb.exe

Спасибо! теперь всё работает

в версиях 3.6 и 4 не работает скрипт импорта. после выбора файла ничего не происходит.

в версии 3.3 всё работает.

прикрепил проект, вернее его часть, т.к. весь проект очень большой, создан в версии 1.46, вот перевожу его на свежую версию и столкнулся с данной проблемой.

10

(33 replies, posted in Russian)

какой именно скрипт? Дайте пожалуйста ссылку, также опишите, что именно не работает.

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

мой код:

procedure frmSklad_Button7_OnClick (Sender: string; var Cancel: boolean);
var
   OpenDialog: TOpenDialog;
   sl: TStringList;
   arrStr: array of string;

   x, m, z, z0, skA, z1: string;
   i,c: integer;

   iOb,cOb: integer;
   ValuteID: string;
begin
     OpenDialog := TOpenDialog.Create(frmSklad);
     OpenDialog.InitialDir := ExtractFileDir(Application.Exename);
     if OpenDialog.Execute then
     begin
          sl := TStringList.Create;
          sl.LoadFromFile (OpenDialog.FileName);


          cOb := sl.Count - 1;
          for iOb := 0 to cOb do
          begin
               arrStr := SplitString(sl[iOb], ';');

               // artikul
               if arrStr[0] = '' then
               begin
                    z0 := '';
                    m := 'SK-';
                    z1 := VarToStr( SQLExecute('SELECT record_count FROM sklad WHERE id = (SELECT MAX(id) FROM sklad)') );
                    if z1='' then z := '0' else z := FloatToStr( StrToFloat(z1) + 1);                                                                                               
                    z := FloatToStr( StrToFloat(z1) + 1);
                    c := Length(z);
                    c := 6-c; // 6 - qty of zero
                    for i := 1 to c do z0 := z0 + '0';
                    skA := m+z0+z;
                end else
                begin
                     skA := ReplaceStr(arrStr[0], '''', '''''');
                     z1 := VarToStr( SQLExecute('SELECT record_count FROM sklad WHERE id = (SELECT MAX(id) FROM sklad)') );
                     if z1='' then z := '0' else z := FloatToStr( StrToFloat(z1) + 1);
                end;

               // skname
               if arrStr[1] <> '' then arrStr[1] := ''''+ ReplaceStr(arrStr[1], '''', '''''') + ''''
                   else arrStr[1] := 'NULL';

               // skizm
               if arrStr[2] <> '' then arrStr[2] := ''''+ ReplaceStr(arrStr[2], '''', '''''') + ''''
                   else arrStr[2] := 'NULL';

               // skkol
               arrStr[3] := ReplaceStr(arrStr[3], ',', '.');
               if arrStr[3] = '' then arrStr[3] := 'NULL';

               // skcena
               arrStr[4] := ReplaceStr(arrStr[4], ',', '.');
               if arrStr[4] = '' then arrStr[4] := 'NULL';

               //2 id_sktype
               if arrStr[5] <> '' then
               begin
                    ValuteID := SQLExecute ('SELECT id FROM sktype WHERE stname LIKE "' + arrStr[5] +'"');
                    if ValuteID = '' then
                    begin
                         SQLExecute ('INSERT INTO sktype (stname) VALUES ("'+ arrStr[5] +'");');
                         ValuteID := IntToStr(Last_Insert_id);
                         if ValuteID = '-1' then ValuteID := 'NULL';
                    end;
               end else ValuteID := 'NULL';

               // skmin
               arrStr[6] := ReplaceStr(arrStr[6], ',', '.');
               if arrStr[6] = '' then arrStr[6] := 'NULL';

               // skzak
               arrStr[7] := ReplaceStr(arrStr[7], ',', '.');
               if arrStr[7] = '' then arrStr[7] := 'NULL';


               SQLExecute ('INSERT INTO sklad (artikul, record_count, skname, skizm, skkol, skcena, id_sktype, skmin, skzak) VALUES ("'+ skA +'",'+ z +','+ arrStr[1] +','+ arrStr[2]+','+ arrStr[3]+','+ arrStr[4]+','+ ValuteID +','+ arrStr[6]+','+ arrStr[7]+');');


               frmSklad.Label1.Caption := IntToStr(iOb+1) + ' из ' + IntToStr(cOb+1);
               Application.ProcessMessages;
          end;

          sl.Free;
          UpdateDatabase('sktype');
          frmSklad.TableGrid1.dbUpdate;
          frmSklad.TableGrid2.dbUpdate;
          frmSklad.ComboBox1.DoOnChange;
     end;
     OpenDialog.Free;
end;

после выбора файла ничего не происходит...

11

(33 replies, posted in Russian)

Приветствую!
в 4 версии ругается на

Form1.mniSettings.Click;

еще перестал работать старый скрипт импорта, не работает и в версии 3.6.... вот в 3.3 работает...

соединял компьютеры в одну сеть прогой OpenVPN... для пробы, работает, но долго не тестировал...

13

(1 replies, posted in Russian)

вылазит именно в этот день, если в DataTimePicker выбирать месяц в котором 30 дней

http://s8.hostingkartinok.com/uploads/images/2016/11/edbec111a11baa1ef07286074f57e709.jpg

еще есть плагин для firefox - SQLite Manager,  пользуюсь им

Доброго времени суток!

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

Действительно, ошибка была в другом, странно, что она не проявлялась до этого...
Спасибо!

Доброго времени суток!

при загрузке формы должно проверяться на наличие файла с расширением .jpg и при его наличии отображаться в DBImage1

var
    file : string;
begin
      file := Lowercase(ExtractFileExt(AddBanner.DBFile1.Text));
      if (file<>'') and (file='.jpg') then AddBanner.DBImage1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + AddBanner.DBFile1.dbFileName);
end; 

ругаться, что это не картинка перестало, зато выдает ошибку is not a valid floating point value

18

(2 replies, posted in Russian)

помогло это: 
if StrToFloat(skItog) >= 0 then

а на AddMaterialy.Edit3.Value ругается, пишет   Undeclared identifier: 'Value'  видно потому, что проект в версии 1.46. оставил как было.

Всё работает.


ОГРОМНОЕ СПАСИБО!!!

19

(2 replies, posted in Russian)

Доброго времени суток!
скрипт работает, но как только в Edit3 ввожу дробное число, соответственно skItog становится тоже дробным, выскакивает ошибка "is not a valid integer value"...  поле sklad.skKol вещественное число.

var
    skItog, skKol, skID: string;

procedure AddMaterialy_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     skKol := SQLExecute ('SELECT skkol FROM sklad WHERE (id=' + IntToStr(AddBanner.TableGrid6.dbItemID) + ');');
     skID := IntToStr(AddBanner.TableGrid6.dbItemID);     

     skItog := FloatToStr( StrToFloat(skKol) - StrToFloat(AddMaterialy.Edit3.Text));

     if StrToInt(skItog) >= 0 then
     begin
     SQLExecute('UPDATE sklad SET skkol=' + skItog + ' WHERE (id=' + skID + ');');
     AddBanner.TableGrid6.dbUpdate;
     end
     else
     begin
     ShowMessage('На складе материала меньше, чем Вы списываете!');
     Cancel := True;
     end;
end;

Доброго дня! проблема - никак не могу вычислить ( мозг уже кипит....

в вычисляемое поле rabota.zarplata  записываю:

(
ifnull((SELECT banner.zpceh FROM banner  WHERE banner.id_Zakaz = Zakaz.id),0)/ifnull((SELECT SUM(rabota.ktu) FROM rabota WHERE rabota.id_banner = banner.id),0)*ifnull((SELECT rabota.ktu FROM rabota WHERE rabota.id_banner = banner.id AND usersCH.id=id_usersCH),0)
)

таблица и их связи на картинке. прошу помощи )

http://s7.hostingkartinok.com/uploads/images/2015/04/737942e736a3c1e12ef90e96584eb4c7.jpg

Спасибо!

Приветствую! а возможно ли сделать чтоб в БД добавлялись файлы только с определенным расширением (в моем случае JPG)?

Огромное спасибо за оперативную помощь!

Доброго дня! Возникло несколько вопросов:

1. DateTimePicker (месяц,год) в поиске с отображением в TableGrid  работает, а вот в отчетах нет (пустую страницу выдает, по полной дате фильтр работает нормально)
2. дублируются записи в отчете. суть проблемы:
есть таблица Заказ - по сути это шапка, и несколько разных таблиц с элементами заказа. при создании отчета выводятся повторы этих элементов, если например в первом элементе 2 позиции, то второй элемент дублируется...

http://s7.hostingkartinok.com/uploads/images/2014/10/1aedcfa8633814f9f296fdc4e99e3dc5.jpg

Заранее спасибо! )