powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вопрос. Как упаковать dbf средствами PB?
15 сообщений из 15, страница 1 из 1
Вопрос. Как упаковать dbf средствами PB?
    #32327377
Abbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ситуация такая: приложение работает с небольшой базой из dbf-ов, после работы с ней естественно остаются удаленные строки, которые лишь помечены на удаление, но физически присутствуют в файле... это несколько напрягает...

собственно возник вопрос: реально ли удалить их физически стандартными средствами билдера?

и еще вопрос вдогонку, детский немного))
как сделать, чтобы по нажатию стандартной кнопки закрытия окна (крестик) можно было выбрать выходить или нет? если вешать на событие Close скрипт с вопросом типа "выйти или нет", то каким образом делать, чтобы по ответу "нет" окно не закрывалось?
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #32327413
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Событие окна Closequery
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #32327426
Dmitry Belousov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор писал:как сделать, чтобы по нажатию стандартной кнопки закрытия окна (крестик) можно было выбрать выходить или нет? если вешать на событие Close скрипт с вопросом типа "выйти или нет", то каким образом делать, чтобы по ответу "нет" окно не закрывалось?
CloseQuery
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #32327636
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор писал:ситуация такая: приложение работает с небольшой базой из dbf-ов, после работы с ней естественно остаются удаленные строки, которые лишь помечены на удаление, но физически присутствуют в файле... это несколько напрягает...
собственно возник вопрос: реально ли удалить их физически стандартными средствами билдера?

Не вижу препятствий.
Вам поможет SQL statement

Код: plaintext
PACK filename;
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #32327705
Abbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем пасиб за ответы

2Ermak
а можно полюбопытствовать, Вы пробовали данную команду в действии?

дело в том, что у меня эта команда не работает, пишет "Illegal data type: pack" )) я потому у народа и спросил совета...
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #32328037
Механик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... не знаю как по-путю иначе. Но если не получается, переименовать (удалить) старый файл и создать новый с таким же именем...
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #32328096
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор писал:а можно полюбопытствовать, Вы пробовали данную команду в действии?


Полюбопытствовавть можно.

Непосредствено перед тем как дать Вам свой ответ, я лично упаковал
dbf файл у себя на рабочей станции из PB database painter.

Доступ к DDF идет через ODBC driver PB DATADIRECT OEM 4.10 dBASEFile (*.dbf)
Данная команда описана в хелпе к ODBC драйверу.

PS. Просто последний раз использовал эту команду в 1999г. И вчера ещё раз проверил, а работает ли она...
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #32328238
Abbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если что, заранее сорри за тупизну, я не так давно билдером занимаюсь))

но эта команда у меня не то, чтоб именно не работает (я неправильно выразился), ее у меня сам билдер не пропускает, т.е. я создаю, например, кнопку, вешаю на нее скрипт типа "pack my_file;", пытаюсь закрыть окно со скриптом, а мне пишет "illegal data type: pack"

(это я все попробовал еще до того как в форум писать... видимо, некорректно поставил вопрос, надо было расписать что я делаю и спросить, а правильно ли я это делаю)))

пользуюсь стандартным мелкософтовским ODBC драйвером для доступа к dbf...
билдер 6.0
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #32328280
PVG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PVG
Гость
Попробуй
Код: plaintext
execute immediate 'pack filename'
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #32328361
Abbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
помогло))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вопрос. Как упаковать dbf средствами PB?
    #33303260
mishael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
народ - плиз. не помогает.
строка execute immediate 'pack forprint;' using SQLCA;


из PB database painter - pack forprint; работает, а во время выполнения пишет:

SQLSTATE = 37000
[Microsoft][Драйвер ODBC dBase] Ошибочная инструкция SQL; предполагалось 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' или 'UPDATE'.

пробовал и с точкой с запятой и без... по всякому крутил... мож подскажете?
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #33303291
mishael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и у китайцев даже смотрел...
STRING LS_SQL
LS_SQL="PACK TABLE1"
EXECUTE IMMEDIATE :LS_SQL USING SQLCA;
тоже не работает. тот же глюк... ПОМОГИТЕ!!!!!
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #33303411
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте другой драйвер, например, от PB DataDirect
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #33305408
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для работы с DBF файлами использую только драйвер : PB INTERSOLV OEM 3.11 32-BIT ( PBDBF13.DLL 01.07.1998 )
Для сжатия Dbf файлов много лет использую event :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
String szTableName,szParm

		SetPointer(HourGlass!)
		szTableName=f_get_from_clause (this) 
		if Len(szTableName)> 0  then
				szTableName='pack '+ szTableName+'  ?'
				PREPARE SQLSA FROM :szTableName;
				EXECUTE SQLSA USING :szParm;
				if sqlca.SQLCode <  0  then
						Open (w_db_error)
						w_db_error.sqlerrtext.text =sqlca.SQLErrText+" ("+String(sqlca.SQLDBCode)+")"
				else
						MessageBox ('Сообщение','Операция завершилась успешно')
				end if
		end if
		SetPointer(Arrow!)
Лишнее можно убрать или переделать, но это работает как танк.
...
Рейтинг: 0 / 0
Вопрос. Как упаковать dbf средствами PB?
    #33305441
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Черт, пока не опубликовал - не увидел ошибку в скрипте - сообщение об ошибке сжатия перепутаны строки.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
String szTableName,szParm

		SetPointer(HourGlass!)
		szTableName=f_get_from_clause (this) 
		if Len(szTableName)> 0  then
				szTableName='pack '+ szTableName+'  ?'
				PREPARE SQLSA FROM :szTableName;
				EXECUTE SQLSA USING :szParm;
				if sqlca.SQLCode <  0  then
						w_db_error.sqlerrtext.text =sqlca.SQLErrText+" ("+String(sqlca.SQLDBCode)+")"
						Open (w_db_error)

				else
						MessageBox ('Сообщение','Операция завершилась успешно')
				end if
		end if
		SetPointer(Arrow!)
Сжатие работало как танк и никогда не глючило.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вопрос. Как упаковать dbf средствами PB?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]