|
|
|
Про DBF, ODBC и ORACLE
|
|||
|---|---|---|---|
|
#18+
n_handle= SQLCONNECT("my_connection") result=SQLPREPARE(n_handle,'insert into shema.mytable (one,two) values ; (?fabula,?nomd)') USE my_dbf SCAN result = SQLEXEC(n_handle) result = SQLCOMMIT(n_handle) ENDSCAN Use на каждую вставляемую запись спрашивает значения полей. Что делать? Или Это вообще не правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 16:04 |
|
||
|
Про DBF, ODBC и ORACLE
|
|||
|---|---|---|---|
|
#18+
fabula и nomd должны быть переменными, а у тебя они скорее всего поля в таблице. После SCAN втавь строку SCATTER FIELD fabula,nomd MEMVAR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 16:22 |
|
||
|
Про DBF, ODBC и ORACLE
|
|||
|---|---|---|---|
|
#18+
Prepare подготавливает запрос на сервере fabula, nomd - поля твоей my_dbf.dbf Memvar необязательно, в рабочей области поля видны, Scan увидит и так n_handle= SQLCONNECT("my_connection") result=SQLPREPARE(n_handle,'insert into shema.mytable (one,two) values ; (?fabula,?nomd)') USE my_dbf SCAN result = SQLEXEC(n_handle) !*! *закомиттить можно разом после endscan ENDSCAN result = SQLCOMMIT(n_handle) Use ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 16:46 |
|
||
|
Про DBF, ODBC и ORACLE
|
|||
|---|---|---|---|
|
#18+
Спасибо, я как-то и забыл что в первую очередь просматриваются имена столбцов. С MEMVAR все заработало. Commit, конечно , вне цикла. Остался от экспериментов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 16:57 |
|
||
|
Про DBF, ODBC и ORACLE
|
|||
|---|---|---|---|
|
#18+
Hi Требуется помощь! Не обязательно memvar - просто в качестве параметра укажи ?mytable.myfield - и будет брать прямо из фоксовой таблицы/курсора. А Commit нужен (и будет реально работать) лишь в том случае, если установлен "ручной" режим работы с транзакциями - в твоём коде этого не видно. Кроме того не стоит коммитить за раз чересчур уж большие порции данных - если в таблице более чем несколько тысяч записей, то лучше ввести счётчик (в простом случае подойдёт и RECNO() в курсоре-источнике) и коммитить порциями - скажем по 100-500 записей - особенно если с модифицируемой таблицей идёт активная работа, и не обязательно ожидать "полной" загрузки данных. Иначе получим очень большой объём undo-данных, что не очень хорошо... Конечно если данные должны быть доступны лишь после того как загружены целиком (а до того должны быть доступны лишь "старые" данные) - то придётся именно один commit и делать... И ещё - в любом случае вставка через insert заведомо медленнее чем прямой импорт - так что если объём очень велик, то есть смысл подумать над альтернативными способами загрузки данных на сервер... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2006, 01:11 |
|
||
|
|

start [/forum/topic.php?fid=41&gotonew=1&tid=1591499]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
150ms |
get topic data: |
9ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 472ms |

| 0 / 0 |
