Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3

Не создаётся таблица

04.09.2009, 09:54. Показов 1906. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Ребята, подскажите, по такой проблеме хочу создать таблицу из программы

C++
1
2
3
4
5
6
7
void __fastcall TMainForm::Button1Click(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text = "CREATE TABLE Person ( Fam char(15) NOT NULL PRIMARY KEY, Nam char(15) NOT NULL PRIMARY KEY, Par char(15) NOT NULL PRIMARY KEY, Year_b integer)";
ADOQuery1->ExecSQL();
}
Но он мне пишет, что "КЛЮЧ УЖЕ СУЩЕСТВУЕТ"
Что не так в коде? Как можно решить эту проблему?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.09.2009, 09:54
Ответы с готовыми решениями:

Не создаётся исходник
Уважаемые эксперты. Срочно нужна Ваша помощь. Написал простенькую лабу (SMTP-клиент). При тестировании антивирус ругался (Dr Web), что в...

Не создаётся таблица в БД
Здравствуйте! Существует база данных: "atm-cms". Есть 2 файла: 1. Файл с формой отправки данных пользователя. (atm_install.php) 2. Файл...

Не создаётся таблица в MySql
Доброго времени суток. Возникла проблема при попытке создать несколько связных таблиц в бд. В консоли Mysql создаю бд...

10
125 / 116 / 17
Регистрация: 27.02.2007
Сообщений: 291
04.09.2009, 10:50
Ограничение PRIMARY KEY может использоваться только один раз для каждой отдельно взятой таблицы (Справочное руководство по операторам SQL)
Вероятно запрос д.б. такой:
SQL
1
2
3
4
5
6
7
8
CREATE TABLE Person ( 
ID INTEGER NOT NULL,
Fam CHAR(15) NOT NULL, 
Nam CHAR(15) NOT NULL, 
Par CHAR(15) NOT NULL, 
Year_b INTEGER,
PRIMARY KEY (ID)
)
1
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.09.2009, 11:15  [ТС]
А у меня так получилось

C++
1
2
3
4
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text = "CREATE TABLE Дополнительная (P_Id int  PRIMARY KEY ,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255))";
ADOQuery1->ExecSQL();
Добавлено через 2 минуты
АНК, а ты случаем не знаешь как можно удалить выделенную строку в DBGrid через запрос без условий. Просто выделенную строку, а то везде примеры показаны с условиями.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
04.09.2009, 11:35
чтобы удалить строку без условий, Вам поможет метод Delete (удаляет текущую строку)
0
125 / 116 / 17
Регистрация: 27.02.2007
Сообщений: 291
04.09.2009, 11:43
Sasha "удалить выделенную строку в DBGrid через запрос без условий"
Как это без условий? В SQL есть оператор DELETE. И запрос мы составляем так:
T-SQL
1
delete from tbl_name
- удаляя ВСЕ записи в таблице. А если надо удалить не все, то добавляем условие ...

А в чем конкретно проблема? Из DBGrid можно получить все необходимое для формирования условия.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.09.2009, 11:50  [ТС]
Проблема в том, что я хочу удалить просто выделенную строку через запрос помогите тогда с условием потому что такой пример не работает

C++
1
2
3
4
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text = "DELETE * FROM Glavnaya WHERE (Invent_Number =:Invent_Number) AND (Number_in_Lan =:Number_in_Lan) AND (Department=:Department) AND (Processor=:Processor) AND (Memory=:Memory) AND (HDD=:HDD) AND (Room=:Room)";
ADOQuery1->ExecSQL();
Добавлено через 1 минуту
Цитата Сообщение от VoodooMan Посмотреть сообщение
чтобы удалить строку без условий, Вам поможет метод Delete (удаляет текущую строку)
А текущую строку через запрос как можно удалить?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
04.09.2009, 11:55
никак, запросу все равно, какая там у тебя текущая запись, запрос ты отправляешь в базу данных, ей тоже в принципе все равно... а вот TTable с текущей таблицей знает, какая запись текущая, вот и надо вызывать тот метод на таблице, с которой работаешь
0
125 / 116 / 17
Регистрация: 27.02.2007
Сообщений: 291
04.09.2009, 11:56
Цитата Сообщение от VoodooMan Посмотреть сообщение
чтобы удалить строку без условий, Вам поможет метод Delete (удаляет текущую строку)
Что-то такого метода в TDBGrid я не помню...

А вот если к TDBGrid привязать TDBNavigator, то у TDBNavigator'а есть возможность сформировать запрос на удаление выбранной строки. Необходимо только обеспечить переход в режим редактирования DataSet'а, что привязан к TDBGrid.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.09.2009, 12:04  [ТС]
Просто я хотел уровнять по скорости добавление и удаление записей в таблице. Так как добавление происходит через запрос это действительно происходит быстрее стандартного метода Insert();то я хотел и удаление строки сделать через запрос, а то стандартным методом Delete() происходит очень долго, что в последствии влияет на формирование отчёта сновыми данными.


А можно как-нибудь отследить попадание или обновление данных в таблицу Access?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
04.09.2009, 12:17
АНК, а кто говорил про грид... грид - только отображает то, что есть в таблице, а вот у таблицы такой метод есть
0
125 / 116 / 17
Регистрация: 27.02.2007
Сообщений: 291
04.09.2009, 12:42
VoodooMan, вот и я засомневался, все вроде о гриде разговор шел, а потом раз и Delete ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2009, 12:42
Помогаю со студенческими работами здесь

Не создаётся таблица при условии
С самого начала проверка на наличие данных в таблицы, если false, то создаём таблицу с именем = login. Но таблица не хочет создаваться ( на...

Не создаётся таблица mysql в php, что может быть не так?
Здравствуйте, что может быть не так, пишет, что мол Ошибка при создании таблицы. Я установил сначала денвер, потом MySQL и в последнем...

Не создаётся exe файл. Создаётся папка netcoreapp2.0
На рабочем компе всё нормально, exe лежит в Debug. На домашнем может с настройками что намудрил, может чего лишнего установил... От...

ПодТаблицы с данными(Таблица-Таблица-Таблица-Таблица) и наследованием
Имеется такая база с таблицами Район-МО-Цель-Зачача. Несколько вариантов связей передумал уже, но не понимаю как сделать, чтоб данные не...

Производный класс Самоорганизующаяся таблица должен наследовать свойства и методы класса Таблица
класс таблица, содержащий целые числа Обьект класса таблица должен позволять: 1 инициализировать случайными числами таблицу 2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru