odbchash.f
Доступ к базам данных с помощью хэш-таблиц
Эта библиотека расширяет odbc.f, добавляя
чтение и запись данных с помощью расстановочных таблиц. В ней
дополнительно определены следующие слова:
BIND-HASH ( hash -- )
Связывает указанную хэш-таблицу с набором данных, полученным в результате
последнего запроса словом ExecuteSQL. Связывание заключается в том,
что в хэше создается по две записи на каждое поле данных. Первая запись
носит то же имя, что и поле данных, вторая запись - такое же имя с
добавленным знаком "#". В первой записи хранится ASCIIZ-строка, представляющая
содержание поля, во второй - длина поля.
UNBIND-HASH ( -- )
Разрывает связывание хэш-таблицы с набором данных. Содержимое хэша при
этом не очищается.
insert-hash ( table-name hash fodbc -- ior )
Добавляет все содержимое хэша в указанную таблицу. В хэше могут храниться
как строки, так и числа. Имена полей берутся из ключей хэша.
\ Пример чтения данных
0 VALUE database
small-hash TO h
StartSQL . TO database
S" реклама" 0 0 0 0 database ConnectSQL SQL_OK? .
" SELECT * from firms" database ExecuteSQL ?sql-error
h BIND-HASH
database NextRow DROP
S" contact" h HASH@Z .ASCIIZ
S" contact#" h HASH@ .
UNBIND-HASH
\ Пример записи данных
S" number" 1010 h HASH!N
" Максимиллиан" S" surname" h HASH!Z
S" Флаг" 1 h HASH!N
" 543.56" S" sum" h HASH!Z
" Это просто примечание" S" note" h HASH!Z
" ticket" h database insert-hash SQL_OK? .