|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
Добрый день. Версия оракла 11.2. Хочу создать конструктор, чтобы работали конструкции вида: Код: plsql 1. 2. 3. 4. 5. 6. 7.
а не выдавало ошибку: Код: plsql 1.
Вот мои конструкторы: Первый вариант: Код: 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.
Ещё был такой вариант второго конструктора, но что-то тоже не работает: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Что я делаю не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 11:38 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
IMNO Что я делаю не так? Инициализировать объект надо после BEGIN. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 12:17 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
IMNO Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 12:39 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
rpovarov Инициализировать объект надо после BEGIN. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 12:39 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
Elic Тут нет вызова никакого конструктора. Конструктор даже без параметров надо явно вызывать. Два чая этому джентльмену. Следующий вопрос. Переписал констркутор и вызов следующим образом: Код: plsql 1. 2. 3. 4. 5. 6. 7.
Код: 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.
Но теперь у меня не работает вариант с передачей параметров, хотя соотвествующий конструктор вроде есть: Код: plsql 1. 2. 3. 4. 5. 6. 7.
Ошибка: Код: plsql 1.
Что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:02 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
IMNO Код: plsql 1.
Что не так? Ты судорожно пытаешься "автоматизировать" то, чего не понимаешь. Почитай документацию сперва. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:06 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
Я лох, признаю. Вот работающий вариант: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:14 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
IMNO Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:19 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
IMNO Я лох, признаю. Вот работающий вариант: Да ну: Код: 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 15:57 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
Ну так: авторDECLARE r_test test_obj := test_obj(); BEGIN r_test.a := 'Test'; dbms_output.put_line(r_test.a); END; ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 16:01 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
IMNO Ну так: Ну так работает и с конструктором по умолчанию. Ты помедититируй инициализация и конструктор - кто курица а кто яйцо. Все что ты сэкономил это (): Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 16:07 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
IMNO Я лох, признаю. Что-то про вариант без скобок я вообще не подумал. Писал с самого начала: Код: plsql 1.
оно и не работало. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 16:12 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
То что ты сделал имеет смысл если у обьекта куча атрибутов, а с двумя: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 16:25 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
Elic rpovarov Инициализировать объект надо после BEGIN. А лучше ещё и комментарием в коде это пояснить, почему именно на этом месте. Иначе разные чудеса начинаются, когда потом кто-то начинает код менять и дополнять. Это из практики, к сожалению... человеческий фактор. Два раза так меня дёргали, почему перестал код работать. А там, оказывается, кто-то из декларации перенёс инициализацию в код, но не туда (под if, например). Спрашиваешь человека зачем, а он говорит "непонятно, что за переменная, а тут я конструктор рядом поставил, и сразу видно". И хрен бы с ним, поставил и поставил. Но он его из декларации убрал, не удосужившись проверить, где тот ещё используется. Поэтому я теперь сразу после begin делаю огромный комментарий "инициализация переменных, не трогать" :) и там вкрячиваю конструктор. После этого его не двигали :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2019, 11:57 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
rpovarov Поэтому я теперь сразу после begin делаю огромный комментарий "инициализация переменных, не трогать" :) и там вкрячиваю конструктор. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2019, 13:04 |
|
Конструктор по умолчанию без параметров
|
|||
---|---|---|---|
#18+
Elic rpovarov Инициализировать объект надо после BEGIN. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2019, 13:43 |
|
|
start [/forum/topic.php?fid=52&fpage=58&tid=1881727]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 156ms |
0 / 0 |