Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2010, 10:10   #1
FroL25
Пользователь
 
Регистрация: 03.01.2010
Сообщений: 22
По умолчанию Builder и SQL

Доброго дня. На форме есть ADOConnection1,ADOTable1,DataSource 1 и таблица Fale, путь к ней C:\Builder\DataBuilder\Data\Tabl\Fa le.db. У меня в этом файле есть 2 колонки Z1 и Z2. 2 строчки заполнены. Мне надо подключить ADOConnection1 к файлу Fale и добавить колонку Z3, но что бы сохранилась запись. Не могу понять как это сделать.Помогите пожалуйста.Очень надо.Напишите код если можете.
FroL25 вне форума Ответить с цитированием
Старый 22.01.2010, 10:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

На твоемместе я бы кинул на форму ADOQuery.
Связал с базой в свойстве ConnectionString.
После чего в свойстве SQL применил команду ALTER TABLE дабы изменить структуру базы.
А ADOTable я бы не использовал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2010, 11:10   #3
FroL25
Пользователь
 
Регистрация: 03.01.2010
Сообщений: 22
По умолчанию

нажал на свойстве ConnectionString. Выбрал Use Connecting String. А в Свойстве связи с данными мне что выбирать?А дальше как привязать к файлу Fale.db? И как обратится к ADOquery1 что бы открыть БД и добавить колонку?
FroL25 вне форума Ответить с цитированием
Старый 22.01.2010, 11:20   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А на какой СУБД ты этот Fale.db сделал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2010, 11:22   #5
FroL25
Пользователь
 
Регистрация: 03.01.2010
Сообщений: 22
По умолчанию

Когда я создавал таблицу то выбрал Paradox 7
FroL25 вне форума Ответить с цитированием
Старый 22.01.2010, 11:48   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Значит найди среди провайдеров в списке Paradox. Если нет посмотри в ODBC драйверах.
А вообще не парься - вместо ADO применяй обычные TQuery и TTable, которые через BDE работают.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2010, 11:50   #7
FroL25
Пользователь
 
Регистрация: 03.01.2010
Сообщений: 22
По умолчанию

Так я не могу через них добавить столбец, точнее могу, но только записи в других столбцах удаляются.Есть выход?
FroL25 вне форума Ответить с цитированием
Старый 22.01.2010, 12:59   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Выход есть всегда
1) Использовать команду SQL - ALTER TABLE в которой указать добавление поля
2) Не использовать Paradox - эта система уже метртвая, и практически нигде не применяется. Луче работай с Акцессом, он понадежнее будет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.01.2010, 16:06   #9
FroL25
Пользователь
 
Регистрация: 03.01.2010
Сообщений: 22
По умолчанию

я добавляю колонку вот так:
Код:
     Table3->Open();   
     Table3->Edit();
     TFieldDef *pNewDef = Form1->Table3->FieldDefs->AddFieldDef();
     AnsiString nam = "Z" + Form1->Table1->FieldByName("№")->AsString;
     pNewDef->Name = nam;
     pNewDef->DataType = ftString;
     pNewDef->Size = 50;
     Form1->Table3->CreateTable();
     Table3->Post();
Table3 подключена к файлу Fale.db
Но проблема в том что CreateTable создает таблицу заново и удаляет записи в других столбцах.
Как мне изменить этот код с использованием Alter table?
FroL25 вне форума Ответить с цитированием
Старый 17.02.2010, 16:34   #10
FroL25
Пользователь
 
Регистрация: 03.01.2010
Сообщений: 22
По умолчанию

Все заработало.
Код:
Form1->Query1->Close();
Form1->Query1->SQL->Strings[0] = "Alter Table Fale Add Z106 CHAR(100)";
Form1->Query1->ExecSQL();
Только теперь при добавлении столбца прога зависает.Я поставил Seven(была Vista).На старой все работало, а теперь нет.Что делать?
FroL25 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
Перенести код из C++ Builder 5 в C++ Builder 2009 Kreadlling C++ Builder 2 13.09.2009 14:00
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15