Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Гуревич Александр Львович
Статус: Профессионал
Рейтинг: 4616
∙ повысить рейтинг »
lamed
Статус: Профессионал
Рейтинг: 2790
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 1988
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Базы данных MySQL

Номер выпуска:457
Дата выхода:27.08.2010, 03:30
Администратор рассылки:Victor Pyrlik, Модератор
Подписчиков / экспертов:341 / 147
Вопросов / ответов:3 / 10

Вопрос № 42702: Добрый день. Есть вопрос по базе дынных BDE. Вопрос не совсем по запросом а по структуре самой таблице. Хочу создать базу, для личного использования, телефонный справочник. Создаю первую таблицу куда вношу название отдела, его телефон. Т....


Вопрос № 125711: Здравствуйте ув. Эксперты. Подскажите, пожалуйста, как вставлять в таблицу с помощью INSERT INTO более одной строки в один заход. Заранее спасибо....
Вопрос № 36758: Привет эксперты. Я хочу учить C++. Пожалуста скажите кто то знает как Я могу найти книги или сайты про учение C++. Спасибо....

Вопрос № 42702:

Добрый день.
Есть вопрос по базе дынных BDE.
Вопрос не совсем по запросом а по структуре самой таблице.
Хочу создать базу, для личного использования, телефонный справочник. Создаю первую таблицу куда вношу название отдела, его телефон. Т. к. отделы могут добовлятся создаю поля с автоматическим заполнением и делаю его ключивым. Вторая таблица сотрудники. кде одно из полей это номер отдела в из первой таблицы. Устанавливаю связь, все работает превосходно. Но из-за некоторых особенностей среды програмирования требуется отказаться от автоматического заполнения в первой таблице, номер отдела. Можеьте подсказать какое поле лудше сделать ключивым и как его заполнять? Не надо предлогать название отдела делать ключивым, т. к. в дальнейшем не очень удобно будет работать. Какие есть предложения. Заранее спасибо за ответы.

Отправлен: 11.05.2006, 11:36
Вопрос задал: AllexZ
Всего ответов: 4
Страница вопроса »


Отвечает Shcherbakov Anton :
Здравствуйте, AllexZ!
Сделай поле номера телефона ключевым.. т.к. телефон фактически получается уникальный.

Ответ отправил: Shcherbakov Anton
Ответ отправлен: 11.05.2006, 11:56

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 96703 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Kazakh :
    Здравствуйте, AllexZ!
    В принципе вы сами можте заполнять ключевое поле, вручную, так сказать.
    Но можете использовать и номер телефона в качестве ключа.
    Тогда как бы теряется сымсл использования двух таблиц. Сделайте ещё одно поле в таблице с клиентами и всё.

    Ответ отправил: Kazakh
    Ответ отправлен: 11.05.2006, 12:09

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 96706 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Филатов Евгений Геннадьевич, Студент :
    Здравствуйте, AllexZ!
    Пример VisualBasic6, связь через ADO, но принцим можно использовать и для других баз и сред программирования
    Создаем таблицы:

    KLUCH
    Kod long уникальный код отдела

    OTDEL
    Nom long уникальный код отдела
    Naim string( 100 )

    TELEF
    Nom long уникальный код отдела
    Tel long телефон отдела

    SOTR
    Nom long уникальный код отдела
    TabN long табельный номер сотрудника (по-идее должен быть уникальным, но для больших предприятий при пятизначном ТН может не хватить свободных номеров )
    FIO string( 50 ) ФИО сотрудника отдела

    Сначала создается отдел, затем ему назначаются телефоны/сотрудники. Так как телефонов/сотрудников может быть несколько, для них предусмотрены отдельные таблицы.

    Даже если отдел удаляется, ключ использован и не повторится.

    Программа
    На основной форме Form4 расположена таблица списка отделов. Рядом находятся две таблицы, в которых выводятся номера телефонов отдела и список сотрудников.
    На форме расположены кнопки "Добавить отдел" Command1 , "Добавить телефон" Command2, "Добавить сотрудника" Command3.
    Можно еще "Переименовать отдел" Command4, "Удалить отдел" Command5, "Изменить телефон" Command6, "Удалить телефон" Command7, "Удалить сотрудника" Command8, "Изменить сотрудника" Command9, "Перевести сотрудника" Command10.

    На форме расположены источники данных, настроенные на базу:
    Otdel типа Adodc, к нему привязан VidOtdel типа DataGrid
    Telef типа Adodc, к нему привязан VidTelef типа DataGrid
    Sotr типа Adodc, к нему привязан VidSotr типа DataGrid

    В коде формы Form4 расположена процедура обновления списка (Data_Refresh), которую необходимо запускать при открытии формы и изменениях данных.

    Имеется форма Vvod для ввода/изменения наименования отдела, ввода/изменения сотрудников и ввода/изменения телефона.
    На ней расположены Label1 - заголовок вида операции, Text1 - содержимое для изменения, Command1 - "Выполнить", Command2 - "Отмена".
    Код формы Vvod
    Private Sub Command1_Click ( )
    b_1 = True
    Vvod.Hide
    End Sub
    Private Sub Command2_Click ( )
    b_1 = False
    Vvod.Hide
    End Sub

    Для примера показана процедура добавления нового отдела.

    С уважением.

    Приложение:

    Ответ отправил: Филатов Евгений Геннадьевич, Студент
    Ответ отправлен: 11.05.2006, 15:46

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 96764 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Игорь Елизаров, Студент :
    Здравствуйте, AllexZ!
    Стандартно, конечно, делается дополнительное поле-ключ с автоинкрементом и все.Это может быть и не код отдела и уж тем более не наименование.
    при удалении записи ключи не освобождаются, то есть если были, как в примере записи с идентификаторами 1,2,3 и запись 3 удалили, то следующая все равно будет 4, то есть записи будут 1,2,4
    Но если автоинкремента нет..
    тогда это поле индекса надо заполнять самостоятельно.
    вариантов может быть много.
    например взять текущую дату и время в текстовом формате
    другой вариант, может быть более интересным
    в SQL есть отдельный тип данных для формирования и хранения уникальных ключей длиной 16 байт (GUID)
    то есть в таблицу заносишь дополнительный столбец с типом данных UniqueIdentifier , а при добавлении записей заполняешь это поле по команде NewId()
    -----
    Пользователь - тоже человек..

    Ответ отправил: Игорь Елизаров, Студент
    Ответ отправлен: 11.05.2006, 18:45

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 96815 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 125711:

    Здравствуйте ув. Эксперты. Подскажите, пожалуйста, как вставлять в таблицу с помощью INSERT INTO более одной строки в один заход. Заранее спасибо.

    Отправлен: 02.03.2008, 21:03
    Вопрос задал: Орленко Максим Васильевич
    Всего ответов: 4
    Страница вопроса »


    Отвечает MaratM, Посетитель :
    Здравствуйте, Орленко Максим Васильевич!
    INSERT table1 SELECT 1,2,3 FROM tables2 WHERE ....
    например так, поля должны 1,2,3 быт в талице 1

    Ответ отправил: MaratM, Посетитель
    Ответ отправлен: 03.03.2008, 01:32

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 213134 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Силантьев А.В. :
    Здравствуйте, Орленко Максим Васильевич!
    Правильный вид таков:

    Insert into tableName1(field3,field5,...,fieldК)
    select field3,field5,...,fieldK
    from ....
    где field3,field5,...,fieldК - любой перечень полей таблицы tableName1,
    если поля, котрые не указаны в списке, разрешено не заполнять при
    вставке строки

    или

    Insert into tableName1
    select field1,field2,...,fieldN
    from ....

    если field1,field2,...,fieldN список полей, соответствующий полному
    списку полей таблицы tableName1 и в том же порядке расположения

    Ответ отправил: Силантьев А.В.
    Ответ отправлен: 03.03.2008, 08:45

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 213160 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Sergey T, 2-й класс :
    Здравствуйте, Орленко Максим Васильевич!

    запросом SELECT.

    т.е.
    INSERT INTO Table1(Field1, Field2, Field3)
    SELECT Field1, Field2, Field3
    FROM Table2

    Удачи.

    Ответ отправил: Sergey T, 2-й класс
    Ответ отправлен: 03.03.2008, 09:30

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 213172 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Тесленко Евгений Алексеевич, Практикант :
    Здравствуйте, Орленко Максим Васильевич!
    небольшое дополнение к ответам

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

    INSERT INTO Table2 ( Field5, Field6, Field7 )
    SELECT Field3, Field2, Field1
    FROM Table1;

    Добавить группу значений подобным запросом:
    INSERT INTO Table2 ( Field1, Field2, Field3) SELECT 1 , 2, 3
    невозможно, это выполняется в цикле процедурного языка.
    Евгений.

    Ответ отправил: Тесленко Евгений Алексеевич, Практикант
    Ответ отправлен: 03.03.2008, 09:52

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 213176 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 36758:

    Привет эксперты.
    Я хочу учить C++. Пожалуста скажите кто то знает как Я могу найти книги или сайты про учение C++.
    Спасибо.

    Отправлен: 04.03.2006, 20:58
    Вопрос задал: Ziya
    Всего ответов: 2
    Страница вопроса »


    Отвечает Nrr :
    Здравствуйте, Ziya!

    sm. zdes\':
    http://www.wmate.ru/ebooks/
    http://www.txt.uz/kn_samouch_c.php
    http://itlibitum.ru/library/BOOK/RUSSIAN/THEMES/CPP/index.html
    i eshe na citforum.ru

    Ответ отправил: Nrr
    Ответ отправлен: 04.03.2006, 23:07

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 86584 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает КиберТварь :
    Здравствуйте, Ziya!
    а причем тут SQL?
    хорошие материалы можно найти на сайте http://citforum.ru
    и в гугле

    Ответ отправил: КиберТварь
    Ответ отправлен: 05.03.2006, 11:17

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 86613 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    подать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.17 от 25.08.2010

    В избранное