Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Вниз

некоторые вопросы по firebird   Найти похожие ветки 

 
peypivo ©   (2004-06-25 19:38) [0]

Добрый день.
1. есть две программы которые одновремеено работают с базой.
одна изменяет данные подтверджает транзакцию. Чтобы во второй
новые данные были обновлены она тоже должна подтвердить  транзак. Почему? ведь не она ее открывала, таблица физически обновлена...
2. в док. по IB нету никакого упоминания про IF EXIST и сервер такие зщапросы не принимает. Неужели действительно нет? Как тогда проверить есть ли таблица, или есть ли у таблицы поле,
если можно напишите пожалуйста как.


 
Курдль   (2004-06-25 19:45) [1]

Что за бред?
1. Транзакция, в общем случае, автоматически открывается при начале изменения данных, но должна быть насильственно закрыта после окончания изменения. Для обновления "старого" набора данных существует "select ...", который выполняется средствами Делфи после команды DataSet.Refresh.

2. IF EXISTS отностися не к таблице, а к записи и используется, как правило в паре с подзапросом.

3. Учите первоисточники!


 
peypivo ©   (2004-06-25 19:53) [2]

1. а почему select * from table_name недостаточно для обновления датасета ?, таблица физически  уже обновлена.
2. если можно пример запроса как мне проверить есть ли поле у таблицы.


 
Курдль   (2004-06-25 20:07) [3]

1. Кому недостаточно селекта?
2. Пример запроса привести не могу - не работаю с IB, но в доке наверняка есть примеры обращения к системным таблицам в поисках полей пользовательских таблиц.
Однако, мне не ясна логика такого поиска... :( Вы что, не помните, какие поля создавали?


 
TohaNik ©   (2004-06-25 20:17) [4]

>>Однако, мне не ясна логика такого поиска... :( Вы что, не помните, какие поля создавали?

Так и не поймешь - тут догадаться надо:)

Вот попробую:

Под полем подразумевается добавленная или редактируемая запись.

Если редактируемая то нет select для refresh
Если вставленная то надо CloseOpen
Во второй программе:)


 
Курдль   (2004-06-25 20:25) [5]


> Под полем подразумевается добавленная или редактируемая
> запись.

Замысловато... Придется Вам, как здесь говорят, изучать SQL до просветления. А пока - мы говорим на разных языках. Отвлекитесь на недельку от компа и почтиайте книжки.


 
TohaNik ©   (2004-06-25 20:37) [6]

>>Отвлекитесь на недельку от компа и почтиайте книжки.
Скоро отпуск займусь.

Ты же сам писал - Вы что, не помните, какие поля создавали?

Вот я и предположил что автор перепутал поле с записью
Не придумывать же название поля или таблицы чтобы проверить что
они существуют в базе.
Если бы это относилось к названиям Field у DataSet при известном  названии поля таблицы, например, то
тогда другой вопрос.


 
Курдль   (2004-06-25 20:41) [7]

Сорри, я глумление принял за чистую монету и не заметил "смену авторства" :)


 
peypivo ©   (2004-06-25 21:32) [8]

Поясню вопросы.
1. пост[0] вторая програма делает селект, но данные которые внесла
  первая программа она не видит до тех пор пока не сделает
  тразактион.коммит (обратите внимание именно вторая а не первая). Зачем ей коммит если не она делала транзакцию? В качестве примера двух прогамм может быть два одновременно работающих isql.

2. поля и записи я различаю.
  во многих СУБД поддерживаются запросы типа
  DROP TABLE table_name IF EXIST
  можно ли делать что-то подобное в ФБ. Если да то покажите пример, в документации я не нашел.

спасибо за внимание.


 
peypivo ©   (2004-06-25 21:37) [9]

опечатался
IF EXISTS


 
Johnmen ©   (2004-06-25 21:47) [10]

>peypivo ©

1. Почитай про уровень изоляции транзакций. Как правило, используется уровень "чтение подтвержденных", т.е. измененные данные данные подтвержденной тр-ей всегда видны другой, не зависимо от момента ее старта.

2. Нет. Такая конструкция не поддерживается. И не определена стандартом SQL92.


 
Ярослав   (2004-06-25 22:49) [11]

1. Как это вторая программа не делала тразакцию? Без запуска транзакции она бы не смогла сделать select. А раз она запустила транзакцию, то и видит данные актуальные на момент ее запуска и поэтому без перезапуска транзакции обновить данные измененные первым приложением невозможно.


 
Johnmen ©   (2004-06-26 02:08) [12]

>Ярослав  (25.06.04 22:49) [11]

Ты серьёзно ?
:)))


 
Курдль   (2004-06-27 20:11) [13]

Если все это серьезно, то я начинаю боятся IB, firebird и т.п. :(
Ну уж нафиг-нафиг! Продолжу-ка я юзать СУБД попроще - Оракл, Сайбэйс...



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.037 c
1-1089134354
ИМХО
2004-07-06 21:19
2004.07.18
Автоматизация Outlook а: как убить окно


6-1085218415
trix
2004-05-22 13:33
2004.07.18
Как сменить сетевую итендификацию ?


14-1088577907
blackman
2004-06-30 10:45
2004.07.18
Чем для меня является программирование? Это просто образ жизни, с


3-1087857148
Oxer
2004-06-22 02:32
2004.07.18
DBChart


3-1087989291
quQuev
2004-06-23 15:14
2004.07.18
Не получается считать из BLOB поля больше 32Kb





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский