1

(1 replies, posted in Russian)

Добрый день, скажите как можно сформировать отчет, по всей таблице чтобы в отчете отображалась из всего списка только минимальная или максимальная дата

возник еще 1 вопрос если в 1 форме есть 2 ключа к 1 таблице (из 1 таблице 2 ключа к другой таблице) как вывести чтобы в таблице выводились 2 разных значения (не номер ключа, а значение)
исходное значение в форме predpriatia выводить надо в Form1 в таблице в 2 разных колонках

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

procedure Start_OnShow (Sender: string; Action: string);
begin
     Wait.Show;
     Application.ProcessMessages;

     {$MySQL disable_connectdialog}
     Start.MySQLConnection.Server := '192.168.100.6';
     Start.MySQLConnection.Port := 3306;
     Start.MySQLConnection.Username := 'root';
     Start.MySQLConnection.Password := 'pa22w0rd';
     Start.MySQLConnection.Database := 'uchet';

     try
         Start.MySQLConnection.Connect;
     except
         Wait.Close;
         ShowMessage('Can''t connect to database.');
         Start.Close;
     end;

     if Start.MySQLConnection.Connected then
     begin
         Start.Pas.PasswordChar := '*';
     end;
     Wait.Close;
end;

к базе данных подключается но появилась проблема с тем что Combobox не отображает данные занесенные в БД

4

(2 replies, posted in Russian)

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

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

это часть скрипта для одного столбца

5

(2 replies, posted in Russian)

Добрый день, подскажите есть такая проблема, из другой БД было экспортированы данные, есть необходимость их импортировать на другую платформу. My Visual Database сможет работать нормально если импортировать в нее данные CSV формате общим объемом где-то прядка 10Гб, и можно ли импортировать данные сразу с внешними ключами между таблицами

6

(8 replies, posted in Russian)

sibprogsistem wrote:
zloyzender wrote:

так пробовал но мне надо  "Form1.Custom.Visible:=False;" чтобы работала для пользователей типа "admin", а все остальные для пользователя "teradmin", а для остальных эти кнопки были невидимы.
А у меня выходит что для админа все работает как надо, а условия для терадмина распространяются как на терадмина так и на остальных юзеров

у вас проверка только на администратора работает,  так можно только да или нет проверить

загрузите проект.

7

(8 replies, posted in Russian)

sibprogsistem wrote:

s := VarToStr( SQLExecute('SELECT `admin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
              if s='0' then
               begin
                   Form1.Custom.Visible:=False;
                   Form1.RedakPr.Visible:=False;
                   Form1.UdalitPr.Visible:=False;
                   Form1.Import.Visible:=False;
                   Form1.UpfSr.Visible:=False;
                  RabotaSPredp.DelEv.Visible:=False;
             end;
сам проект было бы лучше....

так пробовал но мне надо  "Form1.Custom.Visible:=False;" чтобы работала для пользователей типа "admin", а все остальные для пользователя "teradmin", а для остальных эти кнопки были невидимы.
А у меня выходит что для админа все работает как надо, а условия для терадмина распространяются как на терадмина так и на остальных юзеров

8

(2 replies, posted in Russian)

Добрый день, столкнулся с такой проблемой, сделал разграничения по логинам ( 3 разных типа групп), нужно чтобы при разных группах были видимы или не видимы некоторые кнопки, в версии с SQLLite все работает как надо, при подключении базы через MySQL работает только для для группы admin, а для teradmin распростроняется на всех пользователей.

9

(8 replies, posted in Russian)

Добрый день, столкнулся с такой проблемой, сделал разграничения по логинам ( 3 разных типа групп), нужно чтобы при разных группах были видимы или не видимы некоторые кнопки, в версии с SQLLite все работает как надо, при подключении базы через MySQL работает только для для группы admin, а для teradmin распростроняется на всех пользователей.
Проэкт приложить не могу архив весит 4,3 Мб, ваш сервер выдает "Выбранный файл слишком велик. Сервер отклонил загрузку."

   sUser: string = '';
   idUPF: integer;

procedure Start_OnShow (Sender: string; Action: string);
    begin
         Start.Pas.PasswordChar := '*';
    end;

procedure Form1_OnClose (Sender: string; Action: string);
    begin
        Start.Close;
    end;

  procedure MemUser (Sender: string; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
    DobUser.Key.Text:= StrToMD5(DobUser.AddPas.Text);
end;

procedure Start_bLogin_OnClick (Sender: string; var Cancel: boolean);
    var
       sHash: string;
       s: string;
    begin
         //
     // SQL query get hash of password
     sHash := VarToStr( SQLExecute('SELECT Password FROM BEZOP WHERE (Login = ''' + Start.Login.Text + ''');') );


     // if the hash in the database = hash of entered a password
     if sHash = StrToMD5(Start.Pas.Text) then//

                                                     
         begin
              sUser := Start.Login.Text; // Запомнить имя пользователя             

              Form1.TableSr.dbPopupMenu.Items.Items[0].Enabled := False;// отключение двойного клика в таблице на Form1

              // Administrator?
              // check admin rights
              // Кнопки видимые только для администратора, и терадминистратора
              s := VarToStr( SQLExecute('SELECT `admin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
              if s='0' then Form1.Custom.Visible:=False;
              s := VarToStr( SQLExecute('SELECT `teradmin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
              if s='0' then Form1.RedakPr.Visible:=False;
              s := VarToStr( SQLExecute('SELECT `teradmin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
              if s='0' then  Form1.UdalitPr.Visible:=False;
              s := VarToStr( SQLExecute('SELECT `teradmin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
              if s='0' then  Form1.Import.Visible:=False;
              s := VarToStr( SQLExecute('SELECT `teradmin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
              if s='0' then  Form1.UpfSr.Visible:=False;
              s := VarToStr( SQLExecute('SELECT `teradmin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
              if s='0' then  RabotaSPredp.DelEv.Visible:=False;
              // if the user does not have administrator privileges, deactivate the button to create other users

              idUPF := SQLExecute('SELECT IFNULL(id_UPF, 0) FROM BEZOP WHERE (login = ''' + sUser + ''');');

              // hide records for manager who from another departament
              if (idUPF<>0) then Form1.TableSr.dbFilter := 'id_UPF='+IntToStr(idUPF);

              Form1.Caption := 'Пользователь: ' + sUser; // отображение имя пользователя на форме 1
              Start.Hide; // close login form
              Form1.Show; //показать Form 1
         end
     else MessageDlg('Неверно введен логин или параль', mtError, mbOk, 0); // Сообщение при неверном логине и пароле

    end;