|
|
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Sergej_S, Oopyr Нет ребята. Так не пойдет. В 9 версии по прежнему нет решения. ВладимирМ 2463808 Алексей Цингауз, представитель MSFT команды разработчиков VFP привел несколько вариантов решения: В общем, нет простого решения. Все время приходится что-то изобретать... еще немного и вы согласитесь, что решение всётаки есть на то программист и нужен чтобы вибирать приемлемое для данной системы решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2006, 10:03 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
Pavel_t ВладимирМ В общем, нет простого решения. Все время приходится что-то изобретать... еще немного и вы согласитесь, что решение всётаки есть на то программист и нужен чтобы вибирать приемлемое для данной системы решение А я разве говорил, что его нет? Я говорил что нет простого (читай, "автоматического") решения. Вы почитайте, то, что привел Алексей Цингауз, и сравните с тем, что предлагали Вы. По сути, он перехватывает "стандартные" команды создания новой записи и заменяет их своими (!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2006, 10:48 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
Всё боится времени я предложил самый простой вариант для самой простой таблицы и метод через который это можно получить всё остальное описано в хелпе и те-же хранимые процедуры на вставку изменение и удаление при желании это всё настраивается на это я тоже обратил Ваше внимание а универсальным может быть только сыр в мышельвке .... и только время боится пирамид! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2006, 11:22 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
Pavel_tя предложил самый простой вариант для самой простой таблицы и метод через который это можно получить Однако не указали самого главного. При каких условиях этот метод работает! Точнее, при каких условиях он НЕ работает. Поставьте себя на место новичка. Есть метод обновления: сделал - не работает! Почему?! Pavel_tвсё остальное описано в хелпе и те-же хранимые процедуры на вставку изменение и удаление при желании это всё настраивается на это я тоже обратил Ваше внимание ADO - это "не родной" для FoxPro способ доступа к данным. Т.е. в штатном HELP по FoxPro ничего этого нет. Точнее, есть, но "не явно". Разбросано по разным местам. Другими словами, опять ставите новичка в неудобное положение. Дали кусок кода, который работает только при выполнении определенных условий и не дали никаких пояснений по этому коду. ЧТО он должен искать? На ЧТО обращать внимание? Согласен, прочитать полностью HELP по ADO было бы полезно. Но желательно дать ориентиры, на что обращать внимание. Pavel_tа универсальным может быть только сыр в мышельвке Это Вы зря. Применительно к данной задаче в рамках описанных условий решение все-таки есть. И именно универсальное. Основанное на подмене "штатной" команды на вставку на хранимую процедуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2006, 12:33 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
Всё боится времени to Владимир автор вопроса как я понял работает c CAD ,а это подразумевает уже какой-то опыт и умение находить новое и работать с хелпом вопросов по разъяснению если ..... то .... не возникало ...А если его стукнуть молотком, то он станет красным.... (Кир Булычёв "тайна третьей планеты" ) с вашим подходом и Odbc тоже не родной родной только DBF формат просто используя ADO я могу гораздо больше чем через Odbc, но Это уже другая тема .... и только время боится пирамид! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2006, 12:58 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
2 Pavel_t В принципе, есть что возразить. Но это уже выходит за рамки обсуждаемого вопроса. Поэтому сойдемся на том, что Ваш способ работает, но при опеределенных ограничениях. О чем я и говорил на протяжении всей этой темы. Так сказать, уточнил приведенное Вами решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2006, 13:15 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
Резюме: Подобные вопросы, такие как получение ID, возникают только в том случае, если программное обеспечение пишется "на коленке" в дилетантской среде, без бизнес-аналитики, постановки и технического задания. Что не удивительно, т.к. большинство FVP программистов используя удивительные свойства VFP зачастую в одном лице представляют и бизнес аналитика и постановщика да и саму "фирму" (человек - фирма). Именно безграмотный подход к созданию системы порождает вопросы обсуждаемые в данном топике на протяжении уже 9-ти страниц... Это показатель того насколько "запущен" процесс создания бизнес приложений в среде VFP в России. Не удивительно, что программисты VFP настолько низкооплачиваемы в сравнении с программистами других категорий. Это показатель низкой культуры программирования в VFP. Не смотря на огромные возможности VFP, в России этот продукт недооценен, возможно это результат работы таких вот VFP программистов... Грамотная постановка задачи позволяет решать вопрос этого топика без дополнительных извращений обычно используемых дилетантами. Для того, чтобы не появлялось вопросов поднятых в данном топике, при проектировании и программировании программного обеспечения необходимо соблюдать следующие правила: 1. каждая запись должна иметь автора и дату создания 2. любое исправление записи должно фиксироваться в журнале исправлений 3.журнал исправлений(модификаций) должен отражать: а)дату исправления б)автора исправления г)имя поля д)старое значение поля е)новое значение поля ж)идентификатор исправленной записи з)идентификатор таблицы, базы, приложения и)идентификатор рабочей станции с которой произведена модификация 4. каждый пользователь должен однозначно идентифицироваться системой 5. система должна позволять совершать откат ошибочных операций на основании журнала модификаций 7. система должна быть стабильной, иметь дружественный интерфейс, легко настраиваться 8. система должна иметь администратора Соблюдение перечисленных правил позволит вам создавать действительно стоящие приложения на VFP, которые будут стоящими не только в смысле качественном, но и в смысле денежном (количественном). Вот такие выводы и пожелания. С уважением FoXXX. :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2006, 10:15 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
FoXXX Опять!? Большая часть из этих 9 страниц посвящены лично Вам и разбору Ваших ошибок! Поэтому, насчет "безграмотности" и "дилетантизма" ... Вы описали СВОЮ постановку задачи. Какие есть основания предполагать, что ВСЕ задачи имеют такую же постановку? Не "должны", а именно "имеют"? Ведь под термином "должны" Вы подразумеваете "должны в МОЕЙ постановке задачи". Практически каждый из описанных пунктов, как минимум, можно поставить под сомнение. Все зависит от конкретной постановки задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2006, 14:14 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
ВладимирМ FoXXX Опять!? Большая часть из этих 9 страниц посвящены лично Вам и разбору Ваших ошибок! Поэтому, насчет "безграмотности" и "дилетантизма" ... Вы описали СВОЮ постановку задачи. Какие есть основания предполагать, что ВСЕ задачи имеют такую же постановку? Не "должны", а именно "имеют"? Ведь под термином "должны" Вы подразумеваете "должны в МОЕЙ постановке задачи". Практически каждый из описанных пунктов, как минимум, можно поставить под сомнение. Все зависит от конкретной постановки задачи. Постановка бывает грамотной (научной) и безграмотной (ненаучной) - вот и вся разница.. а по поводу "моих ошибок" это вы слишком.. я же не называю ваши разработки ошибкой, я говорю о безграмотности в вопросах формирования ТЗ, в вопросах анализа, ошибки это правописание, а анализ - искуство.. можно писать без ошибок но не быть писателем, и можно писать с ошибками, но быть им.. так и програмист, либо он делает вещи, либо нет и не важно с ошибками или нет, ошибки можно исправить, а кривое приложение - нет.. его можно только переписать заново.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2006, 14:53 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
FoXXX Вы написали 9 пунктов того, что считаете ПРАВИЛЬНОЙ (грамотной, научной) постановкой задачи. ЛЮБОЕ отступление от этих правил Вы считаете НЕ ПРАВИЛЬНЫМ (безграмотным, не научным). По крайней меря я Вас так понял. Я считаю, что постановка задачи МОЖЕТ отличаться от Ваших 9 пунктов и, тем не менее, быть ПРАВИЛЬНОЙ (грамотной, научной). Более того, может не выполняться НИ ОДИН из этих 9 пунктов и, тем не менее, постановка задачи будет ПРАВИЛЬНОЙ. Все дело в том, что хотя Вы и говорите, как бы "вообще", но всегда подразумеваете СВОЮ постановку задачи. Неявно распространяя ее вообще на весь возможный спектр задач. Вот именно это и вызывает, мягко говоря, недоумение. Почему Вам даже в голову не приходит, что постановка задачи может быть ДРУГОЙ? Не ошибочной или безграмотной, а просто другой. Не такой как у Вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2006, 15:14 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
ВладимирМ не 9 пунктов, меньше, несколько вычеркнул, чтобы не нагружать. Владимир! Вы наверно не плохой программист, я даже думаю хороший программист, судя по вашему стремлению помочь новичкам заслуживающий уважения.. но область архитектуры - точно не ваш конек. Извините, ничего личного, но архитектура это несколько другая область, которая тоже имеет свои изюминки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2006, 17:23 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
Hi FoXXX! Большинство из Ваших "пунктиков" более чем спорны. Я пожалуй соглашусь лишь с одним - система должна быть стабильной Всё остальное - сильно зависит от задачи. Для каких-то задач это надо, для других - совершенно излишне. Например есть огромный пласт однопользовательских задач. Есть задачи, где в принципе не решается вопрос "вбивания данных" - а скажем производится анализ... Что касается профессионализма разработчиков - я пожалуй могу с Вами частично согласиться - если конечно принять во внимание самое первое моё сообщение в данной теме, да и несколько последующих - после чего Вы наглядно показали свои, скажем так, неглубокие знания обсуждаемых тем... Тем не менее какие-то (видимо личные) причины мешают Вам признать свою неправоту в тех вопросах - ну что-же это Ваше личное дело. Я просто надеюсь что Вы всё-же примете во внимание всё то, про что говорилось в данной теме - иначе и архитектор из Вас будет скажем так не очень... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2006, 01:57 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
Столько копий сломали ... а нельзя ли после tableupdate воспользоваться коммандой REFRESH() ? т.е. после tableupdate выдаем REFRESH(1,1) - по идее должна обновиться всего 1 запись (текущая вместе с полем id) без всяких go bottom? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2006, 10:27 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
GustafСтолько копий сломали ... а нельзя ли после tableupdate воспользоваться коммандой REFRESH() ? т.е. после tableupdate выдаем REFRESH(1,1) - по идее должна обновиться всего 1 запись (текущая вместе с полем id) без всяких go bottom? указатель слетает.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2006, 13:07 |
|
||
|
VFP + SQL поле IDENTITY
|
|||
|---|---|---|---|
|
#18+
Hi Gustaf! > а нельзя ли после tableupdate воспользоваться коммандой REFRESH() ? Только если ключевое поле было заполнено ДО сохранения - иначе у фокса просто нет зацепки - откуда же брать эти самые данные. По сути Refresh() - это "мелкий" requery() - т.е. строится специальный запрос, он вынимает одну запись, и помещает эти даные в основной курсор - при этом фокс для удалённых данных базируется на KeyFieldList - и конечно если поле ключа после сохранения на сервере изменилось, то такой перезапрос не пройдёт. Более того следует учитывать, что Refresh() реально "новые данные" помещает не в собственно поля курсора, а в "старые значения" - доступ к которым мы получаем через OldVal() - правда если в записи курсора нет изменений то это не имеет значения :) Примерно такую-же идею "мелкого перезапроса" и демонстрирует вышеуказанный код с CAD - но там идёт ориентация на дополнительное поле - ключа кандидата (т.е. уникального ключа), заполняемого на клиенте - что конечно зачастую недостижимо. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2006, 00:18 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33611711&tid=1592046]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
191ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 533ms |

| 0 / 0 |
