|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Апострофы при запросе вставки в Excel (ADOQuery, ODBC)
Делаю SQL запрос INSERT.
В результате в файл XLS вставляются значения с апострофом. Как это исправить? Причем если в файле уже есть корректные записи, то вставляет последующие нормально, если нет - то с апострофом. Создал файл, если его нет: Код:
XL.WorkBooks.add; XL.Sheets[1].Name := 'New'; XL.Cells(1,1) := 'ID'; XL.Columns[1].NumberFormat := 0; Пытаюсь записать туда данные: Код:
ADOQuery2.SQL.Add('insert into [New$] (ID) values (' + newid + ')'); newid - integer не помогает да же указание типа: Код:
ADOQuery2.SQL.Add('insert into [New$] (ID) values (int(' + newid + '))'); Если newid = 5, то в Excel вставляет '5 Появляется апостроф. Хотя преобразования типа в запросе есть. При создании файла указал формат данных столбца. |
#2
|
||||
|
||||
Вроде вообще не должно компилиться это
Код:
ADOQuery2.SQL.Add('insert into [New$] (ID) values (' + newid + ')'); Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
ыф
Цитата:
Код:
ADOQuery2.SQL.Add('insert into [New$] (ID) values (int(' + inttostr(newid) + '))'); Проблема то не в этом |
#4
|
||||
|
||||
Цитата:
Код:
XL.Columns[1].NumberFormat := ''; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
нет. так не работает.
Еще я попытался передавать ID через параметр с типом ftInteger и ftFloat. Не сработало. После каких-то манипуляций(а их было много разных), я перестал видеть апострофы при открытии Excel, но тем не менее вставляемые числа преобразуются в числа сохраненные как текст. |
#6
|
|||
|
|||
Если я вручную вставлю число в XLS, и проставлю формат ячейки "число".
Селект возвращает - число. Последующие INSERT вставляют число. Если я вручную проставлю формат, но без вставки числа. Он мне возвращает String. Последующие INSERT вставляют строку. Если я через OLE проставлю формат, и вставляю число. Последующие INSERT вставляют число. Все свелось к тому, что ошибочно работает только с первой записью и если первая запись некорректно завелась, то последующий то же заведутся не правильно. |