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

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
SashaU
Сообщения: 7
Зарегистрирован: 26 мар 2008, 11:09

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

Сообщение SashaU » 26 мар 2008, 11:13

Добрый день, помогите начнающему.

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

Tonal
Сообщения: 104
Зарегистрирован: 30 сен 2007, 13:42

Сообщение Tonal » 26 мар 2008, 11:29

На каком языке?
Вот код на 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-файле совпадают.

SashaU
Сообщения: 7
Зарегистрирован: 26 мар 2008, 11:09

Сообщение SashaU » 26 мар 2008, 11:33

Пишу на делфях. А можно поподробнее с описанием каждой строчки. Заранее спасибо

SashaU
Сообщения: 7
Зарегистрирован: 26 мар 2008, 11:09

Сообщение SashaU » 26 мар 2008, 11:36

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

SashaU
Сообщения: 7
Зарегистрирован: 26 мар 2008, 11:09

Сообщение SashaU » 26 мар 2008, 11:37

Как написать встроенную процедуру в FB?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 26 мар 2008, 11:49

А книжку почитать? Или ты хочешь, чтобы мы сюда сканы выкладывали?

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

SashaU
Сообщения: 7
Зарегистрирован: 26 мар 2008, 11:09

Сообщение SashaU » 26 мар 2008, 11:59

Книг нету, материала очень мало. собираю по крупицам. с книгами сложно в магазинах

SashaU
Сообщения: 7
Зарегистрирован: 26 мар 2008, 11:09

Сообщение SashaU » 26 мар 2008, 12:08

Как вызвать выполнение процедуры из делфей?

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 26 мар 2008, 12:14

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

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

SashaU
Сообщения: 7
Зарегистрирован: 26 мар 2008, 11:09

Сообщение SashaU » 26 мар 2008, 12:16

Если есть литература скиньте на почту )))

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 26 мар 2008, 12:33

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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 26 мар 2008, 15:16

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

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

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

Ответить