Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 155

/ вопрос решён /

Здравствуйте, эксперты! Помогите решить одну проблему. у меня на форме: Combobox, 2 Listbox-a, edit. к программе подсоеденениы 2 базы данных (BD1, BD2). В Edit вводится название новой таблицы которая создается в BD2, таблица состоит из 2 столбов (FIO, Adres). Combobox отображает список таблиц первой базы BD1, все таблицы состояи из 1 столбца (FIO), при выборе опр таблицы в LIstbox1 отображается её содержимое. Сделал кнопку для переноса необходимых строк в Listbox2. Так вот как сделать что бы содержимое LIstbox2 сохранялось в новой таблицы BD2 столбце FIO ????? ПОМОГИТЕ ПЛИЗ!!!!!!!!!

Анучин Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Анучин (статус: Посетитель)
Вопрос отправлен: 5 апреля 2011, 13:36
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: Чернышев

Здравствуйте, Анучин!
если я правильно понял, то на момент переноса строк из Listbox1 в Listbox2, таблица в второй базе уже создана
я бы сделал вот так:
1) пусть Listbox2 отображает данные новой таблицы точно таким же способом, как Listbox1 отображает данные первой таблицы
(создал для заполнения отдельную процедуру под названием filListBox2 без параметров)
2) а на событие нажатия кнопки написал бы вот такую процедуру (см.код ниже)


Два примечания:
- не забывай перед заполнение Listbox2 отчистить его
- ADOCommand должен быть подключен к базе где у тебя находиться новая таблица

Приложение:
  1. procedure TForm1.ButtonClick(Sender: TObject);
  2. begin
  3. ADOCommand.CommandText:='insert into '+Edit.text+' (FIO) values ('+ListBox1.Items[ListBox1.ItemIndex]+')';
  4. ADOCommand.Execute;
  5.  
  6. filListBox2;
  7. end;


Ответ отправил: Чернышев (статус: 1-ый класс)
Время отправки: 5 апреля 2011, 19:17


Мини-форум вопроса

Всего сообщений: 11; последнее сообщение — 7 апреля 2011, 16:14; участников в обсуждении: 4.
Анучин

Анучин (статус: Посетитель), 5 апреля 2011, 19:05 [#1]:

большая загвостка состоит в том что, во второй базе таблицы создаются программно и их количество непостоянно, поэтому ADOTable непременить. Для отображения в Combobox, Listbox я использовал ADoConnectio, ADOQuery, а для добовления таблиц ADOCommand
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 5 апреля 2011, 19:59 [#2]:

Цитата (Анучин):

поэтому ADOTable непременить

а что мешает применить для добавления записи в таблицу ADOCommand?

Ps:

Цитата (Анучин):

загвостка

это на каком языке? Правильно - загвоЗДка (производное от слова гвоЗДь).
Анучин

Анучин (статус: Посетитель), 5 апреля 2011, 22:53 [#3]:

Чернышев: чёт не получается выдает ошибку: List index out of bounds (-1)- чего делать?((((
Вадим К

Вадим К (статус: Академик), 5 апреля 2011, 22:55 [#4]:

А почему это AdoTable не применим? имя таблицы указывается в виде строки. Никаких абсолютно проблем.

Хотя AdoCommand будет уместнее.
Галочка "подтверждения прочтения" - вселенское зло.
Чернышев

Чернышев (статус: 1-ый класс), 5 апреля 2011, 23:18 [#5]:

ты не выбрал строку, которую надо перенести

было бы идеально тогда еще сделать проверку в самом начале события нажатия кнопки

проверять значение ListBox1.ItemIndex

if ListBox1.ItemIndex=-1 then
begin
  ShowMessage('Не выбрано ни одной строки');
  exit;
end;
Анучин

Анучин (статус: Посетитель), 6 апреля 2011, 18:14 [#6]:

Чернышев: тепрь после выбора строки выдает ошибку: Параметр "текст выбранной строки" не имеет значения по умолчанию.
Чернышев

Чернышев (статус: 1-ый класс), 6 апреля 2011, 20:27 [#7]:

попробуй вот так
ADOCommand.CommandText:='insert into '+Edit.text+' (FIO) values
('''+ListBox1.Items[ListBox1.ItemIndex]+''')';
Анучин

Анучин (статус: Посетитель), 6 апреля 2011, 21:02 [#8]:

))))) блин теперь ошибок нету, но в базу все равно ни чего не добавляется
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 6 апреля 2011, 21:22 [#9]:

Цитата (Анучин):

блин теперь ошибок нету, но в базу все равно ни чего не добавляется

"Ищите и обрящете". Если бы не было ошибок, то все работало бы как надо.
Анучин

Анучин (статус: Посетитель), 6 апреля 2011, 21:24 [#10]:

)))ну я имел в виду, что программа запускается и Delphi не выдает ошибку при запуске, а не то что прога работает так как надо!
Анучин

Анучин (статус: Посетитель), 7 апреля 2011, 16:14 [#11]:

:) все разобрался, ошибка была наиглупейшая, вся беда была в том, что в таблице куда вносились данные из Listbox тип поля был integer поменял на Char и все заработало:)

7 апреля 2011, 16:15: Статус вопроса изменён на решённый (изменил автор вопроса — Анучин)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:53
Выполнено за 0.03 сек.