На главную
ПРАВИЛА 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) « Первая ... 2 3 [4] 5  все  ( Перейти к последнему сообщению )  
> Помогите с минимумом по VolgaDB, Помощь начинающему
    в этой базе GROUP BY
    ExpandedWrap disabled
      Select MyTable.Nomer, MyTable.Razdel From "1.d" MyTable GROUP BY MyTable.Nomer, MyTable.Razdel
    ткже как и DISTINCT
    ExpandedWrap disabled
      Select DISTINCT MyTable.Nomer, MyTable.Razdel From "1.d" MyTable
    делает одно и тоже. Удаляет повторяющиеся строки, но не поддерживает фильтрацыю по какойто одной колонки (хотя может и можно, это нужно на офицыалке поковырять)
    а вот для твоего случая я так понял нужо свойство IndexFieldNames в VolgaQuery/VolgaTbl. набиваеш туда имена колокон через запятую и они сортируются. так как тут походу и впрям сортировка через sql вырублена.

    Цитата qivi @
    И ещё один вопрос... к нему я даже не представляю как подступиться... Суть такова: есть колонка FIO, в которую и записываеться это самое Ф.И.О., записываеться причём полностью. Как нужно сформировать запрос так, чтоб лиш по фрагменту содержащейся информации в колонке? Тоесть не целиком вводить фамилию имя отчество, а только лиш имя или фамилию... а то и вообще лиш их фрагмент...

    Не понял :huh:
    select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
      Цитата ViktorXP @
      Не понял


      Ну моя програма, это же небольшая СУБД, подразумеваеться что при необходимости осуществляеться поиск данных. Есть колонка FIO в которую записываеться целиком фамилия имя отчество, например: Василий Васильевич Пупкин. Имеется в окне СУБД и строка ввода для поиска по ФИО. Но целиком забивать Василий Васильевич Пупкин, это же откровенный геморой, а если допустиш ошибку в фамилии вобще ничего не найдёт. Как заставить искать(фильтровать) не по целому содержанию данных в колонуе, а фильтровать по наличаю фрагмента в данных этой колонке.

      :wall: ViktorXP, полный трабл... ранее по форуму вы мне подсказали как при помощи компонента ВолгаТабле заносить данные в конкретную ячейку записи находящейся под курсором дбгрида, а так же считывание данных их конкретных колонок находящейся под курсором записи... Как сделать это же но при работе с этими компонентами?
      Сообщение отредактировано: qivi -
        Цитата qivi @
        Ну моя програма, это же небольшая СУБД, подразумеваеться что при необходимости осуществляеться поиск данных. Есть колонка FIO в которую записываеться целиком фамилия имя отчество, например: Василий Васильевич Пупкин. Имеется в окне СУБД и строка ввода для поиска по ФИО. Но целиком забивать Василий Васильевич Пупкин, это же откровенный геморой, а если допустиш ошибку в фамилии вобще ничего не найдёт. Как заставить искать(фильтровать) не по целому содержанию данных в колонуе, а фильтровать по наличаю фрагмента в данных этой колонке.
        теперь понял. Тут sql обрезаный и не поддерживает like, но есть поисковая функцыя
        ExpandedWrap disabled
          VolgaQuery1.Like({имя колонки},{часть значения})
        она вернет истину если будет найдена строка, и свокусирован курсор базы на эту строку.
        Сообщение отредактировано: ViktorXP -
        select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
          ViktorXP, благодаря вашей подсказке:
          ExpandedWrap disabled
            VolgaQuery1.Like({имя колонки},{часть значения})

          я нашол:
          ExpandedWrap disabled
            VolgaTable1.Filter := 'Name1="abc" and Num1=123 and Title like "*erfi*"';

          которая меня похоже полностью удовлетворяет и я вернулся к сборке на компоненте ВолгаТабели (которая мне всё это время нравилась больше). :) За что огромное спасибо!!!

          Но я хочу спросить следущее, у меня в записи таблицы 12 колонок(полей), одно из них типа BLOB. Как при помощи ВолгаТабле производить следующие действия:
          - запись файла в блоб поле
          - удалениие файла из блоб поля
          - чтение файла из блоб поля

          Что касается документации на эту тему которую читал я, основанна сугубо на SQL, очень хотелось бы его обойти.
          Сообщение отредактировано: qivi -
            Цитата
            Но я хочу спросить следущее, у меня в записи таблицы 12 колонок(полей), одно из них типа BLOB. Как при помощи ВолгаТабле производить следующие действия:
            - запись файла в блоб поле
            - удалениие файла из блоб поля
            - чтение файла из блоб поля


            Пожалуйста не бросайте меня на ключевом вопросе, я же не профессиональный программист, я только учусь и то ради хобби!
              qiviViktorXP народ помогите плз , первое с чего хочу начать это , то что на оф сайте проги не нашел где скачать :(

              второе скачал с инта , 5.10.

              прочитал кучу инфы по базам, мне показалось что с фришек это самое простое.

              файлик тот что выложен ViktorXP у меня норм компелится.

              понимаю что нудно писать нубам инструкции но оч прошу , пропишите :

              - как добавить строку в таблицу
              - как выбрать строку
              - как обратиться к каждой ячейке строки
              - как редактировать значение ячейки, т.е. сохранять таблицу.
              - и как (если это возможно) добавить таблицу в ячейку таблицы
              -как удалить строку

              всем заренее благодарен.


              Очень буду признателен за русскоязычный мануал к "волге ", если он есть у кого нить
              Сообщение отредактировано: lorddroid -
                Какую технологию доступа к базе хочешь освоить?
                А вообще начни учать язык запросов - SQL. Спарвочников по нему в инете в открытом доступе уйма (на опенсорс к примеру). Почти все технологии доступа к данным (кроме объектного и прямого) используют SQL.
                Тебе по надобятся для начала всего delete, select, insert, update,create, alter, drop. Немного, правда? Чтобы прочитать о них достаточно 20 мин.
                Для работы с запросами тебе понадобится объект Query (в разных технологиях он может называться немного по разному, но символы query присутствуют). Как с ним работать, тоже есть в интернете инфа да и в справке делфи тоже есть примеры.
                Более сложно (для меня во всяком случаи) это как представить полученные данные запроса для пользователя поудобнее. Это уже дело вкуса. Для начала можно просто попробовать работать с гридом (типа таблицой).
                Когда аз и буки изучишь, будешь более конкретные вопросы задавать.
                Случай двигатель прогресса
                  На некоторое время отстранился от своего проектика (нехватало времени). Сейчас опять взялся но... блоб поля не даются и всё!!! Прошу помогите живым примером, выложите исходник самого приметивного приложения с базой VolgaDB на компоненте волгатабеле (без скюеля) которое одной кнопкой засовывает файл (любого формата, любого размера) в базу, а другой извлекает его от тудова. Если это можно сделать несколькими различными приёмами, прошу покажите их все... если конечно не сложно.


                  Я очень понимаю форумчан, уже состоявшимся профессиональным програмистам, которым тяжело опускаться до вопросов такого уровня, но больше обратиться увы неккому, а из документации порой крайне сложно, а то и вовсе невозможно извлеч ту бесконечно малую крупицу знаний которая сейчас тебе необходима, особенно в локализации на достаточно редкую базу.
                  Сообщение отредактировано: qivi -
                    Цитата qivi @
                    Прошу помогите живым примером, выложите исходник самого приметивного приложения с базой VolgaDB на компоненте волгатабеле (без скюеля) которое одной кнопкой засовывает файл (любого формата, любого размера) в базу, а другой извлекает его от тудова.
                    Этот пример не будет ни чем отличатся от примера под любую другую базу. Если не забуду то вечером набросаю пример. (ща просто на работе и у меня тут нет этого компонента. я могбы набросат на другую базу но вопросы будеш задавать типа: "а как это делается на VolgaDB" :D )
                    select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                      Да, да, да... все умные, всем смешно...

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

                      Плиз... кинте примерчик...
                        пока можеш покопать в сторону TBlobField ))
                        select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                          Да... я и пытался с ним, но помоему я даже не понял его природы... :huh:
                            вот набросал примерчик. хотя это и примерчиком не назовеш
                            Прикреплённый файлПрикреплённый файлsample.rar (2.71 Кбайт, скачиваний: 88)
                            select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                              Да... не особо примеристый примерчик но разобрался... спасибо!!!

                              Но хотелось бы сделать вот что (хотелось бы да не знаю как):

                              вот так я записываю файл в базу
                              ExpandedWrap disabled
                                VolgaTable1.edit;
                                TBlobField(VolgaTable1.FieldByName('fil')).LoadFromFile('C:\1.rvf');
                                VolgaTable1.Post;
                                VolgaTable1.SaveToFile('C:\1.d');


                              в чём кстате разница между VolgaTable1.edit и VolgaTable1.insert?

                              вот так я его извлекаю:

                              ExpandedWrap disabled
                                TBlobField(VolgaTable1.FieldByName('fil')).SaveToFile('C:\1.rvf');


                              *.rvf есть формат компонента ричвиев (в нете легко найти что эт такое)

                              чиобы его открыть я делаю следующее:

                              ExpandedWrap disabled
                                RichView1.LoadRVF('c:\1.rvf');
                                RichView1.Format;


                              Но это промежуточное сохранение файла на диск как то не эстетично... очень не нравится...
                              Как сделать его открытие прямо из блоб поля?
                                Цитата qivi @
                                в чём кстате разница между VolgaTable1.edit и VolgaTable1.insert?
                                Без коментарий. ибо я тебе давно говорил чтобы ты прочел какую нить книку (даже прочтение самой "слабинькой" книги дало бы тебе ответы на вопросы подобного уровня.)
                                Цитата qivi @
                                Как сделать его открытие прямо из блоб поля?

                                для этого есть спецыальный компонент DBRichEdit или ты еще не добрался до вкладки Data Controls?
                                да и если ты немного изучал возможности TBlobField (в чем я сильно сомневаюсь) то должен был заметить что он работает с потоками и даже поддерживает метод Assign()/AssignTo()
                                select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1592 ]   [ 18 queries used ]   [ Generated: 17.09.19, 07:15 GMT ]