![]() |
Delphi. Из текстового файла в базу Access.
Всем привет!
Догадываюсь, что вопрос - элементарный, тем не менее очень нужна помощь. Требуется перегнать текстовый файл в базу Access. Текстовый файл представляет собой: ... текст <разделитель> текст <разделитель> ... В базе все это дожно выглядеть, как множество записей, содержащих этот самый текст... Никак не могу разобраться с ADO. Связь с базой установил. Может кто подскажет где можно посмотреть исходник аналогичной программки, или как написать событие для кнопки? |
если Connection есть осталось написать запрос для вставки для чего вешаем на форму TADOQuery. в его Connection пишеш свою Connection. в запросе ( свойство SQL ) пишеш insert into имя_таблицы (список полей, разделенный ,) values(тот же список, только перед каждым элементом поставить ':' )
ну а потом в цикле для всех записей делаеш query->ParamByName(то, что после ':')->Value = значение ... query->ParamByName(то, что после ':')->Value = значение и query->ExecSQL() |
Цитата:
К сожалению, плохо ориентируюсь в вопросе, поэтому нельзя ли по-подробней: Цитата:
insert into ADOTable1('Номер записи','Текст')values(':Номер записи',':Текст') так? Цитата:
Еще раз прошу меня извинить за ламерство. Просто появилась срочная необходимость в создании такой программы, а обратиться не к кому... |
Код:
insert into ADOTable1 (Номер записи, Текст) values(:Номер записи, :Текст')Цитата:
вот после того, как отдну строку прочитал и пишеш... ( адаптирую: ) Код:
ADOQuery1.ParamByName('Номер записи')->Value = значениеа так ли тебе нужно импортировать програмно ( учитывая сложность базы ( точнее ее отсутствие ) и сложность реализации ) может проще самим аксесом импортировать? |
Код:
usesКод:
procedure TForm1.Button1Click(Sender: TObject); |
ааа... еще Parameters нужно:
ADOQuery1.Parameters.ParamByName('Номер записи')->Value = y; ( я, обычно, с интербазой работаю... ) |
2dyr_farot огромное спасибо за терпение!
Давай уж добьем до конца? Значит, исправил, получилось: Код:
ADOQuery1.Parameters.ParamByName('Номер записи')->Value = y;Код:
->Посмотри, пожалуйста внимательно на процедуру выше: возможно там я что-то не дописал или написал не так. |
ааа... это билдера синитаксис. там точка должна быть:
DOQuery1.Parameters.ParamByName('Номер записи').Value = y; |
Наконец-то скомпилировалась!
Однако, при нажатии кнопки вылетает с ошибкой: "Ошибка синтаксиса insert into", которое у меня выглядет так: Код:
insert into ADOTable1(Номер записи, Текст) values(:Номер записи, :Текст) |
есть у меня подозрение, что аксес не принимает ( просто так ) имена полей с пробелами -- засунь его в квадаратные скобки:
insert into ADOTable1([Номер записи], Текст) values(:[Номер_записи, :Текст) + ( только щас дошло ) у тебя в базе таблица как зовется? ADOTable1 это ( как я понимаю ) в делфи имя таблицы... |
2 dyr_farot
В общем все получилось, наконец-то!!! Изменил в таблице названия на Num и Text, в SQL-запросе написал: Код:
insert into Эдельвейс(Num, Text) values(:Num, :Text) |
Еще один маленький вопрос: А как составить запрос в базу, что бы присвоить переменной значение последней записи в счетчике (в моем случае это поле Num)?
|
можеш просто поставить тип поля счетчит ( кажется так ) и в запросе на вставку его не указывать -- оно сгенерится само
|
Цитата:
Просто убрал счетчик из запроса: Код:
insert into Эдельвейс(Num, Text) values(:Num, :Text)Код:
insert into Эдельвейс(Text) values( :Text) |
| Часовой пояс GMT +4, время: 18:38. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.