На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
Страницы: (5) 1 [2] 3 4 ... Последняя » все  ( Перейти к последнему сообщению )  
> Помогите с минимумом по VolgaDB, Помощь начинающему
    я же говорил чтобы ты почитал чтонибудь насчет базы данных. без разницы на какую, возьми хотябы на Access (просто с ней работать будет проще так как на XP и выше она идет на борту)
    и там будет расказано как работать с данными и тд. просто не охотя цытировать тут данные которые ты можеш найти в любой книге.
    select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
      Цель - ничто , процесс - все.
        Да кстате имеенно эту справку скачал откудото из нета осваиваю... и ещё какието...

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

        И ситуация зеркальная, рядом с дбгридом есть кнопка, при нажатии на которую необходимо менять в первой колонке в выделенной курсором строке 1 на ноль или обратно в зависимости от имеющегося значения. Как узнать при нажатии на эту кнопкцу на какой строке стоит курсор дбгрида.
        Сообщение отредактировано: qivi -
          Цитата qivi @
          Да кстате имеенно эту справку скачал откудото из нета осваиваю... и ещё какието...

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

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

          Елементарно ватсон.
          Выделяеш в гриде нужную строку мышей а потом по нажатию на кнопку либо по двойному клику мышей выдираеш из VolgaTable1
          ExpandedWrap disabled
            VolgaTable1.fields[0].AsBoolean := not VolgaTable1.fields[0].AsBoolean; // манипулирует с 1 и 0


          DBGrid сам активизирует нужную запись в таблице во время выделения ее в гриде.
          select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
            Пожалуйста можно немного поподробнее.
            Что значит эта строка? Как активировать мыш и энтер? Как использовать внешнюю кнопку?
              Цитата qivi @
              Что значит эта строка?
              Просто кусок кода ))
              Цитата qivi @
              Как активировать мыш и энтер?
              в DBGrid-е есть собития для миши и кнопок
              Цитата qivi @
              Как использовать внешнюю кнопку?
              обычно как и всегда.

              просто когда ты выделяеш строку в гриде то онаже автоматически выделяется в таблице (грид сам ее выделяет для тебя) тебе достаточно обратится к записям и получить их или изменить (точно также как и при создании записи)
              только для того чтобы изменить запись тебе нужно ее открыть на редактирования а потом сохранить после редактирования. на чтение этого всего делать не нужно только получать данные и все
              select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                ExpandedWrap disabled
                  if IBV.fields[0].AsInteger=0
                  then
                  IBV.fields[0].AsInteger:=1
                  else
                  IBV.fields[0].AsInteger:=0;
                   
                  IBV.Post;


                При нажатии на кнопку с этим кодом выдаёт сообщение об ошибке такого содержания:

                IBV: Table is not in edit or insert mode.

                Правильно ли я понимаю что это связанно с тем что в дбгриде отключено редактирование? Как сделать чтоб в дбгриде редактировать было нельзя а из кода можно.

                И ещё такой момент, после запуска программы в дбгриде невыделено ни одной строки, при нажатии этой кнопки прогу напроч перекорячивает, как сделать чтоб первая строка по умолчанию была выделена при запуске?
                Сообщение отредактировано: qivi -
                  канешно будет ругатся. ну вот почему люди такие не внимательные. ведь я четко написал
                  Цитата ViktorXP @
                  только для того чтобы изменить запись тебе нужно ее открыть на редактирования а потом сохранить после редактирования.
                  тоесть
                  ExpandedWrap disabled
                    IBV.Edit;
                    // делаеш изминения
                    IBV.Post;

                  Цитата qivi @
                  как сделать чтоб первая строка по умолчанию была выделена при запуске?

                  после запуска программы зделай
                  ExpandedWrap disabled
                    IBV.First;


                  Добавлено
                  вабще настройки грида не влияют на таблицу. он вабще идет как показ того что есть в таблице.
                  и програмно всегда топай в таблицу а не в грид ибо лезть в грид и чтото там менять в данных есть плохой тон программирования
                  select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                    ExpandedWrap disabled
                      IBV.Edit;
                      if IBV.fields[0].AsInteger=0
                      then
                      IBV.fields[0].AsInteger:=1
                      else
                      IBV.fields[0].AsInteger:=0;
                      IBV.Post;
                      IBV.SaveToFile('IBV.b');


                    ТОКА В ФАЙЛЕ НЕ СОХРАНЯЕТСЯ?!!
                    Хотя в гриде изменения отображаються.


                    Ой блин разобрался... скопировал из примера выше по форуму... расширение не b а d
                    Сообщение отредактировано: qivi -
                      Дошол в своих изысканиях с базой до фильтрации и поиска... Как можно дбгрид заставить отображать только строки соответствующие определённым харрактеристикам? Как заставить дбгрид вывести базу не в порядке существующих в ней записей, а скаджем объединяя строки по некому признаку, допустим по однотипному (нескольких видов) содержимому колонки раздел?
                      Сообщение отредактировано: qivi -
                        читай книги. поищи библию программиста. там офигенно все написано.
                        select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                          Установил на форму компонент VolgaQvery, в свойстве MasterSource выставил значение VolgaIBV (так называеться мой TVolgaDBGrid). Далее по мативом вышеупомянутой книги я попытался изобразить следующее:


                          ExpandedWrap disabled
                            with Form1.VQ do
                            begin
                            SQL.Clear;
                            SQL.Add('SELECT Pole1,Pole2,Pole3,Pole4,Pole5');
                            SQL.Add('FROM "IBV.d"');
                            SQL.Add('WHERE');
                            SQL.Add('(Pole1=1)');
                            SQL.Add('ORDER BY Pole2,Pole3');
                            Open;
                            end;


                          Заложив этот код под кнопку... компилируеться но при нажатии соответствующе кнопки выдаёт сообщение об ошибке.

                          Что не так???
                            Ошибку в студию!!!
                            Цитата qivi @



                            with Form1.VQ do
                            begin
                            SQL.Clear;
                            SQL.Add('SELECT Pole1,Pole2,Pole3,Pole4,Pole5');
                            SQL.Add('FROM "IBV.d"');
                            SQL.Add('WHERE');
                            SQL.Add('(Pole1=1)');
                            SQL.Add('ORDER BY Pole2,Pole3');
                            Open;
                            end;

                            Надо наверно так
                            ExpandedWrap disabled
                              close;
                              SQL.Clear;
                              SQL.Add('SELECT Pole1,Pole2,Pole3,Pole4,Pole5 FROM "IBV.d" WHERE Pole1="1" ORDER BY Pole2,Pole3');
                              open;


                            Добавлено
                            Да и значения в запрос лучше передавать через параметр. В данном случаи через параметр передать "1".
                            Случай двигатель прогресса
                              Цитата qivi @
                              но при нажатии соответствующе кнопки выдаёт сообщение об ошибке

                              На "кофейной гуще" гадать будем?
                              Цель - ничто , процесс - все.
                                ExpandedWrap disabled
                                  close;
                                  SQL.Clear;
                                  SQL.Add('SELECT Pole1,Pole2,Pole3,Pole4,Pole5 FROM "IBV.d" WHERE Pole1="1" ORDER BY Pole2,Pole3');
                                  open;


                                Сообщение об ошибке: "Error in comparison expression" (ошибка в выражении сравнения)

                                Нет суть в чём то другом... Может он к базе не подключется или ещё что...
                                Как создать запрос именно с Волговскими компонентами?
                                Сообщение отредактировано: qivi -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1650 ]   [ 18 queries used ]   [ Generated: 20.11.19, 08:01 GMT ]