:: Visual Foxpro, Foxpro for DOS
Re: получить перечень таблиц в виде таблицы
ABB

Сообщений: 149
Откуда: Санкт-Петербург
Дата регистрации: 21.10.2006
Вот вариант, который предложил ChatGPT:
Вы можете использовать команду для получения списка всех таблиц базы данных FoxPro в виде таблицы. Вот пример кода для этого:

```vfp
* Создайте объект для работы с базой данных
oDBF = CREATEOBJECT("DBF")

* Откройте базу данных
oDBF.Open("C:\Database.dbf")

* Получите список всех таблиц в базе данных
oTableList = oDBF.TableList

* Создайте таблицу для хранения списка таблиц
oTableListTable = CREATEOBJECT("DBF")
oTableListTable.Create("C:\TableList.dbf")

* Добавьте поля в таблицу
oTableListTable.AddField("TableName", "C", 50)

* Заполните таблицу данными
FOR EACH cTable IN oTableList
oTableListTable.AppendBlank()
oTableListTable.TableName = cTable
ENDFOR

* Закройте таблицу
oTableListTable.Close()

* Закройте базу данных
oDBF.Close()
```

Я надеюсь, это поможет!
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
ABB

Сообщений: 149
Откуда: Санкт-Петербург
Дата регистрации: 21.10.2006
/ask Можно это сделать используя оператор select?

ChatGPTBot, [04.02.2023 16:38]
Да, вы можете использовать оператор SELECT для получения списка всех таблиц базы данных FoxPro в виде таблицы. Вот пример кода для этого:

```vfp
* Создайте объект для работы с базой данных
oDBF = CREATEOBJECT("DBF")

* Откройте базу данных
oDBF.Open("C:\Database.dbf")

* Создайте таблицу для хранения списка таблиц
oTableListTable = CREATEOBJECT("DBF")
oTableListTable.Create("C:\TableList.dbf")

* Добавьте поля в таблицу
oTableListTable.AddField("TableName", "C", 50)

* Заполните таблицу данными
oDBF.Execute("SELECT TableName INTO TableList FROM _Tables")

* Закройте таблицу
oTableListTable.Close()

* Закройте базу данных
oDBF.Close()
```

Я надеюсь, это поможет!
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
ABB

Сообщений: 149
Откуда: Санкт-Петербург
Дата регистрации: 21.10.2006
/ask А без создания объекта?

ChatGPTBot, [04.02.2023 16:42]
Да, вы можете получить список всех таблиц базы данных FoxPro в виде таблицы без создания объекта. Вот пример кода для этого:

```vfp
* Откройте базу данных
USE (C:\Database.dbf)

* Создайте таблицу для хранения списка таблиц
CREATE TABLE TableList (TableName C(50))

* Заполните таблицу данными
INSERT INTO TableList SELECT TableName FROM _Tables

* Закройте базу данных
USE
```

Я надеюсь, это поможет!
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Не пойму 3-х вещей:
1) Чего бояться объекта?
2) На хер он нужен в такой простой задаче?
3) Почему не обсуждается в каком виде это показать на экране и в печатном виде

Если показать, например, на Excel'е, то про печатный вид и не говорим
Если в гриде Фокса, то правые мыши, и не только, могут хорошо расширить ракурс,
а на печать ... Тут возможностей много - перед этим по-разному отсортировать, отфильтровать, где надо сгруппировать
Но это в общем случае, не тут. Тут по алфавиту сортирнуть за максимум
А потом уже кинуть в Иксел, Ворд, PDF - куда юзер скажет или куда уже умеешь.

Но, похоже, тут пляска от того, как-бы быстренько это сделать.
Тогда можно и объекта бояться.
У нас был такой "бой с тенью" на секции бокса.
Никто, не мандражировал перед таким объектом. А тут объект даже не увидишь и он сам удалится
Хотя люди разные, конечно.
Кто-то может просто похвастается, что через объект решил задачу.
А сегодня за это могут повысить в должности или так просто...



Исправлено 1 раз(а). Последнее : Ydin, 04.02.23 19:48
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
ABB

Сообщений: 149
Откуда: Санкт-Петербург
Дата регистрации: 21.10.2006
Вы не совсем поняли о чем я писал.
Это мое общение с сhatGPT — чат-ботом с искусственным интеллектом, разработанным компанией OpenAI и способным работать в диалоговом режиме и поддерживающий запросы на естественных языках.
И это был его ответ на вопрос заданный в теме.
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Понял теперь. Тогда я не прав, конечно.RTFM
Не читайте мое сообщение, это даже не фейк, хуже
Это мое общение с сhatGPT — чат-ботом с искусственным интеллектом, разработанным компанией OpenAI
и способным работать в диалоговом режиме и поддерживающий запросы на естественных языках.

Я даже не знал, что такое есть!:rux:



Исправлено 2 раз(а). Последнее : Ydin, 04.02.23 20:47
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
akvvohinc
Автор

Сообщений: 4222
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
* Создайте объект для работы с базой данных
oDBF = CREATEOBJECT("DBF")

* Создайте таблицу для хранения списка таблиц
oTableListTable = CREATEOBJECT("DBF")
Похоже, ему всё равно, какой объект создавать - всё делается на основе одного супер-пупер класса "DBF".
Пусть покажет код этого класса!
Ratings: 0 negative/1 positive
Re: получить перечень таблиц в виде таблицы
DmitryKn

Сообщений: 300
Дата регистрации: 06.04.2022
akvvohinc
Цитата:
* Создайте объект для работы с базой данных
oDBF = CREATEOBJECT("DBF")

* Создайте таблицу для хранения списка таблиц
oTableListTable = CREATEOBJECT("DBF")
Похоже, ему всё равно, какой объект создавать - всё делается на основе одного супер-пупер класса "DBF".
Пусть покажет код этого класса!

Интересно, откуда оно вообще знает про классы? Грузит хелп из сети, что ли? И как понимает, что выудить? Это ж какой алгоритм должен быть, что бы на любой вопрос любой ответ...
Такими темпами, оно скоро и прогать будет само.



Исправлено 1 раз(а). Последнее : DmitryKn, 14.02.23 10:46
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
Каратаев

Сообщений: 3977
Откуда: Алматы
Дата регистрации: 04.12.2001
Между прочим, вот запросил: покажи код класса DBF...
И вот ответ
DEFINE CLASS DbfTable as Custom
m.cTableName = ""
m.cAliasName = ""
PROCEDURE Init(tcTableName)
m.cTableName = tcTableName
IF NOT FILE(m.cTableName)
CREATE TABLE (m.cTableName) (Field1 C(20), Field2 N(5,2))
ENDIF
m.cAliasName = ADDBS(JUSTSTEM(m.cTableName)) + SYS(2015)
IF ALIAS(m.cAliasName) <> 0
USE IN (m.cAliasName)
ENDIF
USE (m.cTableName) ALIAS (m.cAliasName)
ENDPROC
PROCEDURE Insert(tcField1, tnField2)
INSERT INTO (m.cAliasName) (Field1, Field2) VALUES (tcField1, tnField2)
ENDPROC
PROCEDURE Select()
SELECT (m.cAliasName)
ENDPROC
PROCEDURE DeleteAll()
DELETE ALL IN (m.cAliasName)
ENDPROC
PROCEDURE Destroy()
USE IN (m.cAliasName)
ERASE (m.cTableName)
ENDPROC
ENDDEFINE
И комментарии к этому классу:
Цитата:
Этот класс имеет несколько методов, которые могут использоваться для работы с таблицами формата DBF. Метод Init используется для создания таблицы, если она не существует, а также для открытия таблицы и создания псевдонима. Метод Insert используется для вставки новой записи в таблицу. Метод Select используется для выборки всех записей из таблицы. Метод DeleteAll удаляет все записи из таблицы. Метод Destroy используется для удаления таблицы и ее псевдонима.
Обратите внимание, что это пример и не предназначен для использования в реальном приложении без изменений. Он предназначен только для демонстрации возможностей работы с таблицами формата DBF на Visual FoxPro.
А вы говорите...


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
DmitryKn

Сообщений: 300
Дата регистрации: 06.04.2022
Мне предложил так:
oTables = CREATEOBJECT("CursorAdapter")
oTables.CursorFill("SELECT * FROM _Tables")

Что такое _tables и здесь и выше?



Исправлено 2 раз(а). Последнее : DmitryKn, 14.02.23 14:55
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
akvvohinc
Автор

Сообщений: 4222
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
А вы говорите...
Да у него с памятью проблемы - где же в этом классе все те методы, которыми он предлагал пользоваться ранее?
Ну, а Help по Фоксу - явно не его настольная книга - ошибка на ошибке!
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
_vit

Сообщений: 5175
Дата регистрации: 29.07.2002
akvvohinc
Да у него с памятью проблемы - где же в этом классе все те методы, которыми он предлагал пользоваться ранее?

Дык эта... они Hidden.
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
Каратаев

Сообщений: 3977
Откуда: Алматы
Дата регистрации: 04.12.2001
Ну так и предупреждает же:
Цитата:
Обратите внимание, что это пример и не предназначен для использования в реальном приложении без изменений. Он предназначен только для демонстрации возможностей работы с таблицами формата DBF на Visual FoxPro.
И никто не мешает модифицировать код класса под свои нужды...
Как и любой другой предлагаемый код...


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
akvvohinc
Автор

Сообщений: 4222
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
И никто не мешает модифицировать код класса под свои нужды...
По такой схеме можно набросать пример чего угодно не предназначенного к реальному использованию без изменений.

Я тоже вчера построил прототип вечного движителя и никому не мешаю модифицировать его так, чтобы он, наконец, превратился в рабочий инструмент.
А завтра завершаю постройку летающей тарелки и вот думаю, кому бы позволить изменить её так, чтобы она летала. А пока это просто кусок дерева, нарисованный на бумаге в моём воображении.



Исправлено 1 раз(а). Последнее : akvvohinc, 15.02.23 09:04
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
Каратаев

Сообщений: 3977
Откуда: Алматы
Дата регистрации: 04.12.2001
Да я и не спорю, код конечно-же чисто демонстрационный. Просто был вопрос:
Цитата:
Пусть покажет код этого класса!
Мне стало интересно и, в принципе, класс был показан. А то, что в этом коде отсутствуют некоторые методы, ну так я и запрос делал без привязки к чему-то конкретному - ранее показанному системой коду. Недостающие методы, кстати, тоже можно запросить.
Другое дело, что у опытных программистов уже давное есть свои наработки, фреймворки и т.д. Но если опустить ненужные споры, то в принципе сервис интересный.
Я воспользовался полученным кодом всего один раз, и то не в VFP, а на PHP... Надо было на сайте кое-что изменить.


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.




Исправлено 1 раз(а). Последнее : Каратаев, 15.02.23 09:42
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
ABB

Сообщений: 149
Откуда: Санкт-Петербург
Дата регистрации: 21.10.2006
Каратаев
Я воспользовался полученным кодом всего один раз, и то не в VFP, а на PHP...
Увы, VFP не мейстрим, и обучаться ИИ в этом направлении сложно
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
() VFP и ИИ вообще не коррелируют. ИИ - это чистая математика, а ЯП типа VFP - просто прикладуха, на которой можно излагать полученные матмодели
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
ABB

Сообщений: 149
Откуда: Санкт-Петербург
Дата регистрации: 21.10.2006
Я не о том. сhatGPT обучался на данных из интернета, а там доля VFP исчезающе мала
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
() доля квантовых эффектов исчезающе мала, но она поломала классическую физику, например )

ИИ "обучался" (на языке математики, это "нашел корреляции")... я правильно назвал вещи именами ?



Исправлено 2 раз(а). Последнее : of63, 15.02.23 13:22
Ratings: 0 negative/0 positive
Re: получить перечень таблиц в виде таблицы
akvvohinc
Автор

Сообщений: 4222
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
в принципе, класс был показан. А то, что в этом коде отсутствуют некоторые методы
Да в том-то и дело, что в принципе он ничего не показал - даже этот простенький класс работать не будет из-за элементарных ошибок.

А в целом впечатление такое, что был просто продемонстрирован "принцип лего" - из каких-то жестко написанных конструкций, (бездумно) склеили нечто произвольным образом, завернув в яркую упаковку (более-менее правильные слова).
Особенно это заметно на примере, в котором и "объект для работы с БД", и "таблица для хранения списка таблиц" создавались с помощью одного класса в одном и том же примере.
А все потому, что он решил, что достаточно таблицу назвать Database, и это уже превратило её в базу данных. Ну, или он вообще не знает, что такое база данных применительно к Фоксу.

И вот созданы два объекта, и на словах они вроде даже как-то взаимодействуют, а на деле видно, что общение происходит напрямую по имени таблицы!



Исправлено 1 раз(а). Последнее : akvvohinc, 15.02.23 15:56
Ratings: 0 negative/1 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 27 Артём akvvohinc Baga  (Гостей: 24)

© 2000-2024 Fox Club 
Яндекс.Метрика