Страница 1 из 1

Пример написания процедур FB 1.5

Добавлено: 26 мар 2008, 11:13
SashaU
Добрый день, помогите начнающему.

Необходимо перенести данные из dbf файлов в таблицы FB. Подскажите как написать процедуру которая при считывания данных из dbf создовала новую или обновляла старую запись.

Добавлено: 26 мар 2008, 11:29
Tonal
На каком языке?
Вот код на python-е:

Код: Выделить всё

from __future__ import with_statement
from contextlib import closing
import kinterbasdb
import ydbf

with closing(kinterbasdb.connect(
  host=host, database=database, 
  user='sysdba', password='masterkey',
  dialect=3, charset='WIN1251'
)) as conn:
  try:
    for row in YDbfReader(file('file.dbf', 'rb')):
      conn.execute(
        'UPDATE OR INSERT INTO table1 (....) VALUES (?, ?...) '
          'MATCHING (...)', 
        row)
  except:
    conn.rollback()
      raise
    else:
      conn.commit()
В коде предполагается что состав и порядок колонок перечисленных в запросе и в dbf-файле совпадают.

Добавлено: 26 мар 2008, 11:33
SashaU
Пишу на делфях. А можно поподробнее с описанием каждой строчки. Заранее спасибо

Добавлено: 26 мар 2008, 11:36
SashaU
Например есть dbf (Sifr, Name) в FB Table(Sifr, Name). После выполнения запроса к dbf идет перебор записей запроса и анализируется есть эта запись в FB или нет, после чего она добовляется или обновляется

Добавлено: 26 мар 2008, 11:37
SashaU
Как написать встроенную процедуру в FB?

Добавлено: 26 мар 2008, 11:49
WildSery
А книжку почитать? Или ты хочешь, чтобы мы сюда сканы выкладывали?

ЗЫ: По вопросу вставки/обновления есть ещё статья. Там же кстати и пример хранимых процедур.

Добавлено: 26 мар 2008, 11:59
SashaU
Книг нету, материала очень мало. собираю по крупицам. с книгами сложно в магазинах

Добавлено: 26 мар 2008, 12:08
SashaU
Как вызвать выполнение процедуры из делфей?

Добавлено: 26 мар 2008, 12:14
Ivan_Pisarevsky
SashaU писал(а):Книг нету, материала очень мало. собираю по крупицам. с книгами сложно в магазинах
Забанан на озоне и буксе и у всех прочих интернеткниготорговцев? И почта не работает? Сочувствую... :roll:

Ну как дети малые, нибараешь в бравзере (это та программа при помощи которой ты на этот сайт пришел) в строку адреса, например, www.books.ru заказываешь там книженцию, потом получаешь оную в ближайшем почтовом отделении. Читаешь до просветления, потом с конкретными вопросами приходишь сюда. В моем городишке тоже решительно нет магазинов торгующих спец литературой, все покупаем через интернет, ничО, никто не помер. :wink:

Добавлено: 26 мар 2008, 12:16
SashaU
Если есть литература скиньте на почту )))

Добавлено: 26 мар 2008, 12:33
Ivan_Pisarevsky
SashaU писал(а):Если есть литература скиньте на почту )))
Чего скидывать-то? ссылка на книгу по ФБ прямо на заглавной странице сайта www.ibase.ru вот ее и купи и еще толстую книженцию по дельфи, не слежу что нынче в моде, у меня по дельфям последняя книженция про дельфи7, толстая,такая, если по башке шарахнуть мало не покажется. Вобщем купи толстый букварь по дельфи, чтоб там про БД немного было.
:)

Добавлено: 26 мар 2008, 15:16
kdv
Как вызвать выполнение процедуры из делфей?
Саша, ты либо провокатор, либо тебе действительно надо начать с чтения простых книжек по Delphi.
Потому что
1. Firebird не работает с DBF. Поэтому написать хранимую процедуру, которая бы перегоняла данные из DBF в FB, невозможно (теоретически решение есть, но не для начинающих)

2. раз пишешь на Delphi, то и спрашивай в форумах по Delphi. При использовании BDE, например, писать вообще ничего не придется.

Так что, за книжками, в магазин. или в интернет.
Если есть литература скиньте на почту
здесь не принято
а) помогать лентяям
б) учить пользоваться интернетом
в) пропагандировать халяву