Добавление колонок

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
FroL
Сообщения: 8
Зарегистрирован: 20 янв 2010, 17:04

У меня такая проблема. Есть Table,DataSource и DBGrid. Есть 2 столбца Z1 и Z2 с заполненными строчками. Мне надо добавить третий столбец Z3 программным путем(динамически). Но при добавлении у меня стирается вся информация, остается только названия столбцов.Что делать?
Rick001
Сообщения: 10
Зарегистрирован: 23 янв 2010, 21:08
Контактная информация:

Попробуйте сначала создать все колонки, отключить автоматическую генерацию колонок, потом передать данные в таблицу.
FroL
Сообщения: 8
Зарегистрирован: 20 янв 2010, 17:04

Мне надо время от времени добавлять новые колонки в эту таблицу, но при этом предыдущие записи должны оставаться. А как отключить автоматическую генерацию колонок и передать данные в таблицу?
BulldozerBSG
Сообщения: 270
Зарегистрирован: 09 янв 2010, 04:14
Контактная информация:

Не до конца понятна суть вопроса. Если тебе необходимо добавить колонку в таблицу, то используй SQL запрос на изменение структуры таблицы. Для MySQL баз данных выглядит где то так "ALTER TABLE `test`.`new table` ADD COLUMN `value` VARCHAR(45) NOT NULL AFTER `name`;" Для других баз может слегка отличаться.
FroL
Сообщения: 8
Зарегистрирован: 20 янв 2010, 17:04

У меня приложение работы с БД. У меня одна таблица - это список постоянных колонок. К каждой строке мне надо закрепить несколько картинок, т.е. при добавлении у меня вызывается другая форма с помощью которой заполняется и добавляется запись. В этой форме выбираются картинки. Мне надо их где то хранить пути к этим картинкам и я создал таблицу, в которую при добавлении в первую(основную) таблицу записи добавляется колонка и заполняется путями к этим рисункам. И когда я добавляю колонку у меня удаляются записи в других колонках.Вот какая у меня проблема. Builder ругается и пишет ошибку что не знает символ ALTER TABLE. А через чего вызывается это запрос?
BulldozerBSG
Сообщения: 270
Зарегистрирован: 09 янв 2010, 04:14
Контактная информация:

FroL писал(а):У меня приложение работы с БД. У меня одна таблица - это список постоянных колонок. К каждой строке мне надо закрепить несколько картинок, т.е. при добавлении у меня вызывается другая форма с помощью которой заполняется и добавляется запись. В этой форме выбираются картинки. Мне надо их где то хранить пути к этим картинкам и я создал таблицу, в которую при добавлении в первую(основную) таблицу записи добавляется колонка и заполняется путями к этим рисункам. И когда я добавляю колонку у меня удаляются записи в других колонках.Вот какая у меня проблема. Builder ругается и пишет ошибку что не знает символ ALTER TABLE. А через чего вызывается это запрос?

Ого. Я так понял. Что для каждой картинки вы хотите создать столбец. То есть для первой, второй... картинки. А не лучше для хранения ссылок на картинки использовать другую таблицу типа (идентификатор, путь к картинки). А первой таблице использовать одно поле в строке, где указать список идентификаторов картинок через запятую.

Через что вызывается запрос? Наверное через компонент SQLQuery, если память мне не изменяет. И используется этот компонент вместо Table.

А так советую обратиться к какой нибудь книге по базам данных в Buildere или Delphi. Компоненты у них одни.
FroL
Сообщения: 8
Зарегистрирован: 20 янв 2010, 17:04

Нет.Я создаю столбец для каждой строки первой таблицы и заполняю этот столбец путями к картинкам. Спасибо сейчас попробую.
FroL
Сообщения: 8
Зарегистрирован: 20 янв 2010, 17:04

Спасибо.Все получилось. :)

Код: Выделить всё

Query1->Close() ;
Query1->SQL->Strings[0] = "ALTER Table Fale  Add Z3 CHAR(50)";
Query1->ExecSQL();
Ответить