powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Paradox ..отредактировать столбцы у таблицы.
18 сообщений из 18, страница 1 из 1
Paradox ..отредактировать столбцы у таблицы.
    #37889240
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Задание у меня такое : Имеется временная таблица полученная из запроса..в этом запросе участвуют 12 таблиц(12 месяцев). Временная таблица содержит поля-(РеализацияГВС, РеализацияОВ...РеализацияГВС_1,РеализацияОВ_1..)

Хочу отредактировать эту временную таблицу таким образом:
ЯНВАРЬ РеализацияГВС, РеализацияОВ...
ФЕВРАЛЬ РеализацияГВС, РеализацияОВ...

т.е. не могу понять как отделить эти данные друг от друга..имею ввиду вывести в одну таблицу, но где указан конкретный месяц...а не так...думаю сначала может переимановать столбцы т..е РеализацияГВС_ЯНВАРЬ... и т.д.

Хотя мне подсказывали, что лучше всего циклом пробежаться по 12 таблицам и вытащить эти данные в одну таблицу, но каким образом я даже не знаю как это осуществить..
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37889962
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин,

Код: sql
1.
2.
3.
4.
5.
6.
  SELECT январь.Месяц, январь.РеализацияГВС, январь.РеализацияОВ
  FROM январь
UNION
  SELECT февраль.Месяц, февраль.РеализацияГВС, февраль.РеализацияОВ
  FROM февраль
...
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37889969
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const64,

Я код хочу написать в самой кнопочке, такой вариант, который вы предложили он не сработает.

Каждый из 12 запросов, состоит из трех таблиц, а эти три таблицы между собой связаны т.е. 2 таблицы являются справочниками и с помощью запроса получается одна таблица.
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37889971
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот в таком виде у меня код в кнопке. язык PAL.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
method pushButton(var eventInfo Event)
 var
 q query
 TC TCursor
 t tableview
 pp TCursor
 endvar

 q=Query
ANSWER: :PRIV:okon.db
    endQuery
        q.executeQBE(tc)
  tc.open(":PRIV:okon")
       tc.edit()
          scan tc:
             tc.РеализацияГВС= tc.РеализацияГВС_1
               
        tc.endedit()
        tc.close()

t.open(":PRIV:okon")

;pp.open(":PRIV:okon")
   ;pp.edit()
     ;scan pp:
        ;pp.("РеализацияГВС_1")as "fg"
endscan
;pp.endEdit()
;pp.close()   }


endMethod
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37890091
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АндрюхинЯ код хочу написать в самой кнопочке, такой вариант, который вы предложили он не сработает.

Каждый из 12 запросов, состоит из трех таблиц, а эти три таблицы между собой связаны т.е. 2 таблицы являются справочниками и с помощью запроса получается одна таблица.
Почему не сработает? В ObjectPAL-е (кстати, версия Paradox какая?) можно и SQL-запросы писать, а не только QBE. Так-же пишите 12 SELECT-ов из 3-х таблиц, и объединяете их UNION-ом. Конечно, в BDE SQL бедноват (подробнее - см. LocalSQL.hlp), но такие вещи делать можно.

P.S. Кстати, код у Вас какой-то кривой - Вы открываете TCursor до цикла, затем почему-то его в цикле закрываете, и тут-же снова открываете - ?? и даже в таком варианте после первого прохода он работать не будет - вы его в режим редактирования не переводите.
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37890242
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const64,

версия 8 . в sql редакторе(тот который встроен в пародкс)ничего восприниматься не хочет..

щас вот даже попытался все 12 запросов обьеднить в один запрос...вернее из 12 запрос были получены 12 таблиц и эти 12 таблиц решил обьединить в одну таблицу....пишет ошибку тейбл ис фуллл
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37890425
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхинпишет ошибку тейбл ис фуллл
BDE Administrator, Configuration, Drivers, Native, Paradox, увеличить Block Size
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37890468
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const64 ого спасибо))))заработало)))

а вот хотел узнать как можно по нажатию кнопки сделать так, чтобы циклом пробежала по 12 таблицам и вывелись данные в таком виде?или не по 12 таблицам, а по одной большой таблице..где содеражаться данные за 12 месяцев.


Месяц \РеализацияГВС \РеализацияОВ\
Март \ 45 \45345 \

и т.д.
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37890474
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин,

А какая структура у исходной таблицы?
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37890482
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const64,

КодО \КодИ\РеализацияО\РеализацияВ\РеализацияГВС\Тариф\СуммаОВ\СуммаГВС\АдресО\РеализацияОВ\АдресИст\




это так у каждой из 12 таблиц. Вот и думаю создать кнопку, по нажатию которой создаться таблица где отдельно для каждого месяца отображаются данные:

РеализацияОВ\РеализацияГВС\СуммаОВ\СуммаГВС
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37890487
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин,

в это же время у каждой из 12 таблиц поля--- АдресО и АдресИст беруться из др таблиц.

КодО \КодИ\РеализацияО\РеализацияВ\РеализацияГВС\Тариф\СуммаОВ\СуммаГВС\АдресО\РеализацияОВ\АдресИст\





Эти 12 таблиц получены как раз таки запросом..а почему запросом, потому что надо было извлечь поля АдресО и АдресИст из др таблиц.
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37890525
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин,

Если я правильно понял как нужно агрегировать:

на SQL
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  SELECT "январь" as Месяц, t.РеализацияОВ, t.РеализацияГВС, 
         sum(t.СуммаОВ) as СуммаОВ, sum(t.СуммаГВС) as СуммаГВС
  FROM "table01.db" t
  GROUP BY (t.РеализацияОВ, t.РеализацияГВС)
UNION
  SELECT "февраль" as Месяц, t.РеализацияОВ, t.РеализацияГВС, 
         sum(t.СуммаОВ) as СуммаОВ, sum(t.СуммаГВС) as СуммаГВС
  FROM "table02.db" t
  GROUP BY (t.РеализацияОВ, t.РеализацияГВС)
UNION
...



на QBE
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
;-----------
q=Query

table01.db | РеализацияОВ                   | РеализацияГВС |
           | Check calc "январь  " as Месяц | Check         |

table01.db | СуммаОВ             | СуммаГВС             |
           | calc sum as СуммаОВ | calc sum as СуммаГВС |

endQuery
q.executeQBE("tblAll.db")

;-----------
q=Query

table02.db | РеализацияОВ                  | РеализацияГВС |
           | Check calc "февраль" as Месяц | Check         |

table02.db | СуммаОВ             | СуммаГВС             |
           | calc sum as СуммаОВ | calc sum as СуммаГВС |

endQuery
q.executeQBE("tblTmp.db")
;-----------
q=Query

tblAll.db | Месяц  | РеализацияОВ | РеализацияГВС | СуммаОВ | СуммаГВС |
INSERT    | _join1 | _join2       | _join3        | _join4  | _join5   |

tblTmp.db | Месяц  | РеализацияОВ | РеализацияГВС | СуммаОВ | СуммаГВС |
          | _join1 | _join2       | _join3        | _join4  | _join5   |

endQuery
q.executeQBE()
;-----------

;-----------
q=Query

table03.db | РеализацияОВ               | РеализацияГВС |
           | Check calc "март" as Месяц | Check         |

table03.db | СуммаОВ             | СуммаГВС             |
           | calc sum as СуммаОВ | calc sum as СуммаГВС |

endQuery
q.executeQBE("tblTmp.db")
;-----------
q=Query

tblAll.db | Месяц  | РеализацияОВ | РеализацияГВС | СуммаОВ | СуммаГВС |
INSERT    | _join1 | _join2       | _join3        | _join4  | _join5   |

tblTmp.db | Месяц  | РеализацияОВ | РеализацияГВС | СуммаОВ | СуммаГВС |
          | _join1 | _join2       | _join3        | _join4  | _join5   |

endQuery
q.executeQBE()
;-----------
...
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37890575
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const64,

щас пока ошибка выходит какая то...Ann errors was triggered in the 'edit" method on an object of TCursor type.

может где то в коде Ткурсор не правильно использую....


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
[FIXED][FIXED]var
t tableview
 tc TCursor
 Posled Table
 dest string
 fg  tableview
q query
endVar


q=Query
ANSWER: :WORK:zapros1.db

T:\Sbyt\2011\01\CALC\CALC\RC.DB | КодП   | КодО   | КодИ           | РеализацияО |
                                | _join2 | Check  | check _join4   | Check     |

T:\Sbyt\2011\01\CALC\CALC\RC.DB | РеализацияВ | РеализацияГВС | Тариф  |
                                | Check       | Check         | Check  |

T:\Sbyt\2011\01\CALC\CALC\RC.DB | СуммаОВ | СуммаГВС |
                                | Check   | Check    |

T:\Sbyt\2011\01\BAZA\OBJECT.DB    | КодП   | АдресО |
                                  | _join2 | Check  |

T:\Sbyt\2011\01\BAZA\OBJECT.DB | РеализацияО           |
                               | Check as РеализацияОВ |

T:\Sbyt\2011\IST\IST.DB | КодИ   | Адрес             |
                        | _join4 | Check as АдресИст |

endQuery
TC.open(":WORK:zapros1")
        q.executeQBE()


TC.edit()

scan TC for TC."РеализацияВ" ="":
   TC."РеализацияВ" = 0
   TC."РеализацияО" =""
   TC."РеализацияО" = 0
endScan
   scan TC for TC."РеализацияОВ"<>"":
   TC."РеализацияОВ" =TC."РеализацияВ"+TC."РеализацияО"
   TC."РеализацияОВ"=""
   TC."РеализацияОВ" =TC."РеализацияВ"+TC."РеализацияО"
endScan
TC.endEdit()
TC.close()

 ; t.open(":WORK:zapros1.db")



[/FIXED][/FIXED]
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37890756
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин
Код: plaintext
1.
2.
TC.open(":WORK:zapros1")
q.executeQBE()

Поменяйте эти строки местами.
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37890776
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const64,

поменял..все также выскакивает, но при этом работает все....кроме того забыл дописать ошибку..
An errors was triggered in the 'edit" method on an object of TCursor type.
TCursor not opened.
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37891937
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин,

А сама таблица :WORK:zapros1 существует? Т.е. запрос-то выполняется?
Замените
q.ExecuteQBE()
на
if not q.ExecuteQBE() then errorShow() endif
для получения детализации.
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37899818
Андрюхин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const64,

вообщем надо все делать заново..т.е. имеется три таблицы которые между собой связаны, далее нужно или можно создать таблицув которую запишутся данные т.е. в эту таблицу нужно закинуть данные из 3 таблиц руками т.е.
Код: plsql
1.
2.
3.
4.
t=create ":PRIV:yanvar" with
"КодО":"N", "АдресО":"A4", "АдресИст":"A4", "КодИ":"A4","Тариф":"$", "РеалO":"N","РеалВ":"N","РеалОВ":"N", "СуммаОВ":"$","РеалГВС":"N", "СуммаГВС":"$"
endcreate 
t.unattach()



далее циклом организовать процесс выдергивание данных для всех 12 месяцев.
Код: plsql
1.
2.
3.
for m from 1 to 12
   p=getAliasPath("rootdir")+"\\2011\\"+iif(m<10,"0","")+string(m)+"\\CALC\\CALC\\"
 endfor



проблема в том что не знаю как выдергивать данные из таблиц в результирующую..
...
Рейтинг: 0 / 0
Paradox ..отредактировать столбцы у таблицы.
    #37931887
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрюхин,

Вариант 1 - на SQL
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
var    
  itemNameSQL SQL
  db database
endVar

db.open (":WORK:")

itemNameSQL =
SQL 
    Select *
    from table1.db
  UNION ALL
    Select *
    from table2.db
  UNION ALL
    Select *
    from table3.db
endSQL

executeSQL(db, itemNameSQL, ":PRIV:yanvar.DB")



Вариант 2 - scan
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
TC.open(":PRIV:yanvar.DB")
TC.edit()

for m from 1 to 12
   p=getAliasPath("rootdir")+"\\2011\\"+iif(m<10,"0","")+string(m)+"\\CALC\\CALC\\"
   TC1.open(P+"tbl.db")
   scan TC1:
     TC.insertAfterRecord(TC1)
   endScan
   TC1.close()
endfor

TC.endEdit()
TC.close()
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Paradox ..отредактировать столбцы у таблицы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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