Delphi И Sql Несколько Вопросов

Тема в разделе "Delphi - Базы данных", создана пользователем Fexys, 26 окт 2012.

  1. Fexys

    Fexys New Member

    Регистрация:
    22 янв 2012
    Сообщения:
    3
    Симпатии:
    0
    Есть несколько таблиц:
    Основная, где помимо простых полей хранятся ID других таблиц
    Побочные, где ключ и 1-2 поля (являются, что-то типа обычного списка)
    Рис: Tabl - основная табл. Info - другие таблицы. Edit-Update - окно доб\редакт.

    1)Как сделать процедуру в SQL для добавления записи (вроде просто, но чет не могу сообразить).
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Процедура добавления записи для данных в 1ой таблице</div></div><div class="sp-body"><div class="sp-content">
    Create procedure New_Film (@NazvRus nvarchar(50), @NazvAngl nvarchar(50), @Strana nvarchar(50), @janr nvarchar(50), @Rej nvarchar(50), @god nvarchar(20))
    as
    Begin
    insert into Films values ((select isnull (max(id)+1,1) from Films), @NazvRus, @NazvAngl, @Strana, @janr, @Rej, @god)
    end

    Но как сделать такое же, если данные находятся в разных таблицах?

    2) Подскажите что можно использовать вместо DBLookupCombobox(используется для добавления\редакт полей табл)? Т.е. нужно чтобы при вводе текста выдавал продолжение имеющееся в списке, если нет, то позволял добавить в опр. таблицу.

    3)Можно ли в DBGrid при наведении на строку всплывало сообщение (что-то типа подсказки) с большим текстом (в данном случае с описанием фильма). Честно не смотрел еще и не знаю как. И еще не знаю как это реализовать в БД:
    - Либо создавать к каждому полю текстовый файл и при запросе (и при наведении в Grid на строку) выводил текст из него.
    - Либо в бд создать отдельную таблицу с nchar (max) привязанную к основной
    Не откажусь от других вариантов и способов решения. :)

    4) Как реализовать поиск с такой структурой бд(на рисунке). Пробовал делать поиск по "представлению" через Like в DBEdit не вышло. Вроде выдавал ошибку на то что не существует View_8 файлов.

    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">как-то так</div></div><div class="sp-body"><div class="sp-content">
    procedure TForm23.DBEdit1Change (sender: TObject);
    Var
    asd : string;
    begin
    asd := QuotedStr('%'+search.Form23.DBEdit1.Text+'%');
    with DM.QAll do
    close;
    SQL.Clear;
    SQL.Add('Select * from View_8 where NazvRus like '+asd);
    open;
    end;
    end;


    5) Не обязательно, но вдруг если знаете. Окно в котором будут вводить текст и отправлять письмом на почту. такое реально и как?
     

    Вложения:

    • Tabl.JPG
      Tabl.JPG
      Размер файла:
      117,7 КБ
      Просмотров:
      29
    • Edit_Update.JPG
      Edit_Update.JPG
      Размер файла:
      47,5 КБ
      Просмотров:
      28
    • Info.JPG
      Info.JPG
      Размер файла:
      87,3 КБ
      Просмотров:
      26
    • Структура.JPG
      Структура.JPG
      Размер файла:
      68 КБ
      Просмотров:
      27
  2. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    Сколько вопросов сразу... это ж "неделю" только надо чтобы до конца все вопросы дочитать... а отвечать... и подумать страшно... ;)

    (1) SQL оператор JOIN. читайте "гуглохелп".
    (2) Не совсем понятно чего именно вы хотите добиться в итоге... Ну например возъмите обычный комбобокс, заполните его данными из таблицы... кнопкой или нажатию ENTER чего нибудь куданибудь добавляете...
    Только... Вы же надеюсь отдаете себе отчет, что придется все поля записи добавлять в таблицу... т.е. в моем понимании все равно сначала должна появиться некая форма где надо будет занести "недостающие" поля. А потом уже жать "ОК" и добавлять... или там только один "столбец" в таблице?
    (4) Like должен работать. Ищите ошибку в строке которую вы передаете в SQL.Add (собираете в переменную asd). Они корректные? Может проблема в русских буквах? В какой кодировке строки в таблице хранятся?
    (3), (5) и еще мнооого чего интересного на все случаи жизни:
    http://delphiworld.narod.ru/_all_articles_.html
     
  3. Fexys

    Fexys New Member

    Регистрация:
    22 янв 2012
    Сообщения:
    3
    Симпатии:
    0
    (2) Таблицы состоят из 2х столбцов: id и данные. Просто хочу немного упростить, чтобы не вбивать отдельно в другом окне данные.
    (4) кодировка nchar, должен считывать русский. По поводу корректности, в видео все работало, списал код от туда
    http://www.youtube.com/watch?v=Sm_AjtUndQ8...ayer_detailpage

    За ссыль спасибо.
     
Загрузка...

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