|
|
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
Подскажите плз как в InterBase зделать проверочку: Если таблица существует, то удалить ее. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2003, 13:37 |
|
||
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
Через что работаешь с ИБ, в IBX TIBDataBase для для этого можно воспользоваться procedure GetTableNames(List: TStrings; SystemTables: Boolean = False) а потом проверить наличие в TStrings есть или нет. (я бы так сделал), еще можно через системные таблы, но я стараюсь туда не лесть (так на всякий случай, не доверяю я пока сам себе :) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2003, 14:41 |
|
||
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
Мне нужно это запихать в скрипт который генерит таблицы. Т.е. проверку написать на SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2003, 15:12 |
|
||
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
http://ibase.ru/devinfo/sysqry.htm#1][Это должно натолкнуть на мысь] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2003, 15:24 |
|
||
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
Системную таблицу я уже нашел. У меня проблема с синтаксисом. Создал процедуру: CREATE PROCEDURE EXISTSTABLE ( TABLENAME CHAR(31) CHARACTER SET UNICODE_FSS) RETURNS (BOOLEANEXISTS INTEGER) AS DECLARE VARIABLE I INTEGER; begin select count(*) from RDB$RELATIONS r where r.RDB$RELATION_NAME = UPPER(:TableName) into i; if (i=1) then BooleanExists =1; else if (i=0) then BooleanExists =0; suspend; end а исползовать ее грамотно не могу. :( код вызова: if (execute procedure sysexiststable('TableTest') = 1) then drop table TableTest; ругается на IF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2003, 15:50 |
|
||
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
Это > if (execute procedure sysexiststable('TableTest') = 1) then drop table TableTes работать не будет, т.к. drop table TableTes нельзя вызывать из хранимых процедур и тригеров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2003, 16:54 |
|
||
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
Да нестыковочка DDL и DML. Наверное всетоки прийдется на клиенте формировать скрипт и запускать.\ А что пишешь если не секрет, может можно както по другому ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2003, 17:08 |
|
||
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
кстате меня терзают смутные сомнения что и эта конструкция рабочая... "if (execute procedure sysexiststable('TableTest') = 1) then " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 03:41 |
|
||
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
Дак кто нибудь скажет как эту проверку реализовать на сервере. Или в InterBase этого зделать нельзя? :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 07:24 |
|
||
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. Только вот одно но есть ... TableTest - это имя таблицы, но никак не переменная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 08:52 |
|
||
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
Так с чем трабл, с созданием, или с определением наличия таблы? Если ты пишешь какойто инструмент, то почему нельзя организовать создание таблы с клиента через IBSQL, или формировать скрипт и потом выполнять его ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 08:53 |
|
||
|
Удаление таблицы
|
|||
|---|---|---|---|
|
#18+
Проверить можно, создать таблицу нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 11:15 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32191510&tid=1580316]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
140ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 465ms |

| 0 / 0 |
