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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2010, 00:22   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию как создать новый лист в ecxel sql запросом из delphi?

всем привет,еле подключился к эезелю через ODBC теперь проблема с sql запросами,простые запросы типа
Код:
adoquery1.Active:=false;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from [лист1$]');
adoquery1.SQL.Add('where FIO = '''+edit1.text+'''');
adoquery1.Active:=true;
у меня работаю,а вот когда по сложнее то выдает ошибки,мне надо создать в экзеле лист с определенными столбцами
Код:
adoquery1.SQL.Add(Create table NewTable (reg char(10), FIO char(200), BDATE char(10), ZP char(10), UVDATE char(10), PRUV char(255))'
insert into NewTable select * from [Лист1$]');
при этом выдает ошибки
[DCC Error] Unit1.pas(68): E2035 Not enough actual parameters
[DCC Error] Unit1.pas(68): E2003 Undeclared identifier: 'reg'
[DCC Error] Unit1.pas(68): E2014 Statement expected, but expression of type 'Char' found
я там явно что то делаю не так,но я не знаю что,может кто подскажет?обещаю + всем кто поможет))
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось Stilet; 14.06.2010 в 14:43.
betirsolt вне форума Ответить с цитированием
Старый 14.06.2010, 14:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ты ничего не перепутал?
Может тебе нужно так:
Код:
adoquery1.sql.text:=Create table NewTable (reg char(10), FIO char(200), BDATE char(10), ZP char(10), UVDATE char(10), PRUV char(255))';
adoquery1.ExecSQL;
adoquery1.SQL.Text:='insert into NewTable select * from [Лист1$]';
adoquery1.ExecSQL;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.06.2010, 15:47   #3
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

вот как я сделал
Код:
adoquery1.sql.text:='Create table NewTable (reg char(10), FIO char(200), BDATE char(10), ZP char(10), UVDATE char(10), PRUV char(255))';
adoquery1.ExecSQL;
adoquery1.SQL.Text:='insert into NewTable select * from [Лист1$]';
adoquery1.ExecSQL;
adoquery1.Active:=true;
я там с одинарными кавычками не напутал?а почему SQL.Text а не sql.add?какая между ними разница?и почему adoquery1.ExecSQL;?для чего это? вобщем теперь у меня выдает что таблица доступна только для чтения,хотя я такого нигде не ставил

проблема с доступом решена теперь при выполнении этого запроса выдает
текущий поставщик не поддерживает возврат нескольких наборов записей в результате выполнения одной операции

ребята проблема почти уже решена,неужели никто не может помочь?

я еще не решил эту проблему,так что тема все еще актуальна
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось Stilet; 18.06.2010 в 17:13.
betirsolt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить свойства таблицы SQL запросом? Grandistok Microsoft Office Access 1 10.04.2010 16:52
Как создать новый каталог MixanMM Общие вопросы Delphi 6 16.11.2009 12:58
А можно ли из формы создать новый лист с именем вводимым на форме Lis000iq Microsoft Office Excel 4 29.06.2009 19:20
Как создать форму с запросом? LakyWinter Microsoft Office Access 4 23.11.2008 19:58
Новый лист Berrimor Microsoft Office Excel 1 08.09.2008 10:37