powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Insert в mdb
9 сообщений из 9, страница 1 из 1
Insert в mdb
    #35322114
Barnau1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi all!!!
Возникла проблема с экспортом данных из 7 foxa в таблицу access

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
m.lcPath = CURDIR() + "\exp.MDB"
m.lcDSNLess = "Driver={Microsoft Access Driver (*.mdb)};Dbq=&lcPath;Uid=Expert;Pwd=;"
m.lcConnect = SQLSTRINGCONNECT(m.lcDSNLess)
SQLSETPROP(lcConnect,"DispWarnings",.T.)

SQLEXEC(lcConnect, "INSERT INTO table (id, FirstName, Level) values ;
     ('go','gl',1)")

id- строка
FirstName - строка
Level - длинное целое

Вообщем не проходит по целому ошибка формата данных

Как правильно указать формат длинного целого?
...
Рейтинг: 0 / 0
Insert в mdb
    #35322162
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сообщение об ошибке надо смотреть. Для этого AERROR() есть.
Код: plaintext
1.
2.
3.
4.
if SqlExec(...) <  0 
   local array laErr[ 7 ]
   aerror(laErr)
   MessageBox(laErr[ 1 , 2 ])
endif
...
Рейтинг: 0 / 0
Insert в mdb
    #35322265
Barnau1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я же сказал уже сообщение ошибки
Несовпадение типа оператора и операнда
...
Рейтинг: 0 / 0
Insert в mdb
    #35322308
Barnau1Я же сказал уже сообщение ошибки
Несовпадение типа оператора и операнда
Среди приличных и технически грамотных специалистов, к коим, я надеюсь, Вы себя и причисляете, принято сообщать не свою интерпретацию или перевод сообщения об ошибке, а само оригинальное сообщение об ошибке без купюр и исправлений, лучше всего копи-пастом.
...
Рейтинг: 0 / 0
Insert в mdb
    #35322447
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> SQLEXEC(lcConnect, "INSERT INTO table (id, FirstName, Level) values ;
> ('go','gl',1)")

А что за точка с запятой в твоей строке???


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Insert в mdb
    #35322557
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял проблему, то почитай вот это

Символьные поля, переменные памяти и константы
...
Рейтинг: 0 / 0
Insert в mdb
    #35322700
Barnau1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Galyamov Rinat
> SQLEXEC(lcConnect, "INSERT INTO table (id, FirstName, Level) values ;
> ('go','gl',1)")

А что за точка с запятой в твоей строке???

:) Просто нет слов!!

Написавшие выше еще хлеще.

Нет ВладимирМ проблма не в формировании строки запроса.
Смысл вопроса изложен придельно ясно.
Если я посылаю строку без вставки в целочисленное поле Level в access'e
Код: plaintext
1.
SQLEXEC(lcConnect, "INSERT INTO table (id, FirstName) values ('go','gl')")
запрос выполняется нормально. Проблема в передаче параметра на вставку в целочисленное поле Level. Я посылаю любое число.Fox сразу ругается: ОШИБКА СИНТАКСИСА в инструкции INSERT INTO
...
Рейтинг: 0 / 0
Insert в mdb
    #35322964
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Попробуй явное преобразование типов при insert-e, уж не знаю как в акцессе называется ф-ия, типа

Код: plaintext
1.
 SQLEXEC(lcConnect, "INSERT INTO table (id, FirstName, Level) values ;
     ('go','gl',cast(1 as int))")

возможно 1 воспринимается как .t.

2. Либо через "?"
Код: plaintext
1.
2.
3.
 
a =  1 
SQLEXEC(lcConnect, "INSERT INTO table (id, FirstName, Level) values ;
     ('go','gl',?a)")
...
Рейтинг: 0 / 0
Insert в mdb
    #35322978
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barnau1:) Просто нет слов!!

Написавшие выше еще хлеще.
Извини, курсы телепатов еще прошли, гадать что там у тебя творится не очень получается

Barnau1Нет ВладимирМ проблма не в формировании строки запроса...

Fox сразу ругается: ОШИБКА СИНТАКСИСА в инструкции INSERT INTO
Ошибка синтаксиса это и есть неправильное формирование строки запроса.

Для общего развития: фокс не проверяет синтаксис запроса, т.к. понятия не имеет какой там синтаксис должен быть, он его только передает как строку, проверяет и ошибки возвращает драйвер ACCESSа .
А фокс тебе сообщение показывает потому что стоит: SQLSETPROP(lcConnect,"DispWarnings",.T.)
При .F. ошибки по AERROR() ловят.

Из ACCESSа этот инсерт отрабатывает?

PS В таком тоне отвечать не рекомендую, тут никто тебе помогать не напрашивался. Ты сам задал вопрос, если тебя не поняли, то наверно надо все описать поподробнее.

PPS Я понял в чем проблема, но тебе думаю надо за свои грубости извиниться для начала.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Insert в mdb
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]