Помогите по БД в Дельфи!

Тема в разделе "Delphi - Базы данных", создана пользователем Assel, 21 май 2009.

  1. Assel

    Assel Гость

    Я создала в Дельфи 2 таблицы DBGrid, точнее связала с таблицами что в Аксесе были. Теперь мне из этих двух таблиц нужно выбрать некоторые поля и создать другую новую таблицу. Через MasterFields запретили делать (преодаватель), сказали что нужно это сделать программным путем, т.е. в коде, а как это делать? объясните! и еще мне сказали чо нужно использовать в инспекторе объектов Column для того чтобы я смогла выбирать некоторые поля!
     
  2. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    Третью таблицу именно создать нужно или в нее( уже существующую) забросить данные выбранные из первых двух. В таблицах много колонок ? структурку набросайте...
     
  3. Assel

    Assel Гость

    Нет, у меня уже имеются готовые 2 таблицы. Теперь на основе этих двух нужно создать другую таблицу пограммным путем. Т.е. связать те 2 таблицы каким-то образом и вписать в 3 таблицу.
     
  4. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    1 .так напишите структуру таблиц и то какие поля их них надо записать в третью ?!
    2. что DBGrid отображает ?
     
  5. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Видно, Assel сам не понимает сути задачи и просто уперто говорит то, что сказал ему препод. Только без подробностей.
     
  6. Assel

    Assel Гость

    2 таблицы: в 1-ой куча полей мне только некоторые из них нужно взять,
    а во 2-ой вего-то 2 поля, нужно выбрать из него лишь одно.

    DBGrid отображает то, что в в аксесе у меня, т.е. эти две таблицы, у меня 2 DBGrid-а
     
  7. Assel

    Assel Гость

    Да, я не понимаю многих вещей в этом Дельфи. И Я - ОНА! =)
     
  8. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    :lol:

    Так как Вам нужно выбрать данные из двух для третьей, то очевидно, что эти две таблицы связаны ( по полю или полям, которые уникально сопоставляют записи в обеих таблицах.
    Например: Таблица 1: id_person , Name
    Таблица 2: id_person , Fam

    SELECT tbl1.Name, tbl2.Fam
    FROM Таблица1 tbl1, Таблица2 tbl2
    WHERE tbl1.id_person = tbl2.id_person

    В итоге имеем связанные данные из двух таблиц для третьей таблицы.

    Задачу вы довольно не конретно излагаете. Но исходя из Вашей формулировки у Вас будет форма из двух гридов и двух кнопок (одна из которых Close ;-) ) . По нажатию на кнопку будет формироваться 3-я таблица, при этом все операции будут проводиться в SQL.

    Однако если есть уточняющие условия в задаче, то это может быть совсем другое...
     
  9. Assel

    Assel Гость

    Спасибо! Так, терь я соеденила таблицы и создала 3 табличку. Это я сделала с помощью ADOQuery ->SQL. Теперь мне нужно из этой созданной таблицы выбрать одно поле и пихать ее данные поочереди в ComboBox, точнее чтобы из ComboBox-а выходили данные одного поля той 3 таблички. Как это осуществить? Ведь 3 таблица она созданная, через Query таким же способом можно?
     
  10. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    можно опять воспользоваться компонентом Query (либо создать программно либо тем, который есть у Вас на форме).
    Вот пример для Query, который уже есть у вас на форме и ComboBox.
    данные из поля name из таблицы Table1 заносятся в ComboBox.
    Ловите:
    Код (Text):
    var
    sDBItem:string;
    begin
    ComboBox1.Items.Clear;
    with ADOQuery1 do
    begin
    SQL.Clear;
    SQL.Add ('Select name from Table1');
    Open;
    First;
    while not eof do
    begin
    sDBItem := String(FieldValues ['name']);
    ComboBox1.Items.Add(sDBItem);

    Next;
    end;
    end;
    end;
     
  11. Assel

    Assel Гость

    Дельфи думает что это - ADOQuery1, SQL неизвестные переменные и выявляет ошибку!
     
  12. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    Конечно. В Вашем случае надо брать компонент Query с закладки ADO - это будет ADOQuery , в некоторых других случаях с закладки BDE - это будет Query. Но из кода понятно, что используется именно ADOQuery.

    Ошибку ? Да вы что. Никакой ошибку и в помине быть не может. Это элементарный запрос.

    Даже интересно, а что за ошибка ?
     
  13. Assel

    Assel Гость

    Я сама, оказывается виновата, исправила :)
    А по тому коду что вы показали - это я на что должна кликать, т.е. чт за процедура будет. На комобокс кликать или на форму? =))
     
  14. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    Это код заполнения комбобокса данными.
    Я не знаю когда именно Вам нужно заполнять комбобокс данными.
    Если все операции выполнятются на этапе создания формы , то в OnCreate формы, если Вы хотите заполнять комбобокс по нажатию на какую-нибудь кнопку на форме - то в обработчик OnClick кнопки и т.д. В общем вариантов как видите масса :)
     
  15. Mazhor

    Mazhor Гость

    Не хочу плодить темы поэтому задаю вопрос свой тут! Стандартная композиция ADO ACCESS DELPHI.
    Проблема такая, как сделать чтобы в DBGrid можно было вводить десятичные знаки? (например 5.6), в access тип данных поля числовое, следовательно маску ввода задать нельзя, в самой access десятичные знаки вводятся а в DBgrid не дает ставить не точку не запятую!
    Знаю тупой вопрос но не могу никак догнать, везде прогуглил нигде не нашол ответа!
     
  16. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    Mazhor
    В станзартном раскладе не заметил никакой проблемы.
    Набросал простейшее приложение:
    1. ADOConnection -> ADOTable -> DataSource -> DBGrid
    2. Таблица в Access : добавляем поле с типом данных 'Числовой' и выставляем в свойствах поля 'Размер поля:Одинарное с
    плавающей точкой' и 'Число десятичных знаков'.
    Сохраняем.
    3. Запускаем Вудзрш приложение.

    числа с запятой сохраняются без проблем. :)
     
  17. Mazhor

    Mazhor Гость

    тфу1 ты, точно :), блин а чо тогда у меня с прогой ......пошол ковырять.....
     
  18. Mazhor

    Mazhor Гость

    блин спасибо огромное за ответ на тупой вопрос, :lol: все сделал и все работает, мешно самому над собой :)
     
  19. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    не за что.
    бывает :)
     
Загрузка...

Поделиться этой страницей