|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
Неожиданно возникла задача, есть база в Access, к ней надо подключиться из VFP, поискав в инете, ничего не нашёл, помню что-то такое было в книге Базиняна, но поискав её в инете, тоже не нашёл, как-то не пользовался базами данных в VFP, всё free table, поэтому посоветуйте ссылку, где можно про это почитать, Что сделал, так это 1 Создал проект 2 В проекте создал базу данных 3 создал соединение(но почему то Connection Disigner, не спросил имя и путь базы данных Access, только тип ) Что надо дальше делать, чтоб увидеть данные Access в VFP В каком файле(записи) он прописывает параметры этого Connection, чтоб можно было эту строчку прописать в программу и работать без Базы данных VFP ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2012, 10:30 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Еще есть курсорадаптеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2012, 10:41 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
спасибо.... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2012, 10:55 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
что-то фигня какая-то, везде где есть данные, попали в memo поле... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2012, 11:27 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
Длина записи в Access? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2012, 11:42 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
q1w1e1что-то фигня какая-то, везде где есть данные, попали в memo поле... Если строка в акцесовской таблице более 254 символов - то фокс ее в мемополе помещает, т.к. не влазит. Если можно обрезать, то делай так Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2012, 11:44 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
вот примерный код lcMDB = "c:\st\адресаты с (з).mdb" && база акцеса lnHandle = SQLStringConnect("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + lcMDB) *+ ";UID=admin;" if lnHandle > 0 if SQLExec(lnHandle, 'select PADR(alltrim("Организация"),100," ") as org from Office_Address', 'tresult') > 0 sele tresult brow ENDIF ELSE MESSAGEBOX("Ошибка") endif PADR(alltrim("Организация"),100," ") - с этим выражением результата нет left("Организация",100), результат есть, но поле Memo в базе акцесса тип поля "Организация", Текстовый, 255 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2012, 12:14 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
q1w1e1PADR(alltrim("Организация"),100," ") - с этим выражением результата нет left("Организация",100), результат есть, но поле Memo в базе акцесса тип поля "Организация", Текстовый, 255 alltrim() - это фоксовая фунция. Ацесс ее не знает. попробуй Код: sql 1.
И если результата нет - смотри ошибку: Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2012, 12:26 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
Функции cast в access тоже нет. Можно использовать Left, как уже было написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2012, 11:44 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
да я понял, не знаю как этот select написать, чтоб он в Memo поле не вводил информацию, конечно можно в VFP пройтись по Memo полям и извлечь оттуда в символьное поле...но это уже в крайнем случае, пока разбираюсь... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2012, 12:13 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
select left(MyField, 254) as MyField, left(MyField1, 254) as MyField1 и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2012, 12:18 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
Поэксперементировал - похоже самое простое это уменьшить размер поля в акцессе до 254. Второй вариант - попробовать использовать курсорадаптер и там явно указывать тип поля С(254) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2012, 12:57 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
спасибо..., за всё хватаешься, ничего не успеваешьь, всё так просто, уменьшил длинув Accesse(пока никто не заметил...), но странное дело... SQLExec(lnHandle, 'select "Организация" as org from Office_Address', 'tresult') нормально, а SQLExec(lnHandle, 'select left("Организация",100) as org from Office_Address', 'tresult'), появляется поле Memo, надо почитать Access, можеть left не обрезает, а добавляет 100 символов... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2012, 13:24 |
|
Подключение к базе Access
|
|||
---|---|---|---|
#18+
q1w1e1спасибо..., за всё хватаешься, ничего не успеваешьь, всё так просто, уменьшил длинув Accesse(пока никто не заметил...) Скорее всего и не заметят. Access при создании текстового поля 255 предлагает. Скорее всего просто оставили не задумываясь. q1w1e1, но странное дело... SQLExec(lnHandle, 'select "Организация" as org from Office_Address', 'tresult') нормально, а SQLExec(lnHandle, 'select left("Организация",100) as org from Office_Address', 'tresult'), появляется поле Memo, надо почитать Access, можеть left не обрезает, а добавляет 100 символов... Тут наверно кривизна ODBC-драйвера. left() обрезает. Сделай left("Организация",1) и посмотри что одна буква в мемополе осталась. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2012, 13:30 |
|
|
start [/forum/topic.php?fid=41&msg=37897476&tid=1583545]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 196ms |
0 / 0 |