Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. думаю может есть вариант попроще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2010, 19:42 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
хороший пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2010, 19:56 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
в общем проблема в том что есть 2 кнопки создание документа и сохранение документа существует 2 таблицы документы и регистр при создании документа заношу запись в таблицу документов Код: plaintext 1. 2. Код: plaintext 1. то в таблице документов запись останется и если так будет происходить то будет много не нужных записей в таблице документов. хотелось бы узнать как мне проверить на vb что мой запрос на запись прошел успешно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2010, 20:06 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05admхотелось бы узнать как мне проверить на vb что мой запрос на запись прошел успешно? если запрос не выполнится успешно, в VB произойдет ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2010, 21:39 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2010, 22:13 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, aduka05admхотелось бы узнать как мне проверить на vb что мой запрос на запись прошел успешно? все равно проблема так не решится,буду думать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2010, 22:16 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05adm, а зачем ты пытаешься сохранить документ до того, как пользователь явно это захотел. Пиши все в момент сохранения - не будет этой проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 00:04 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Shocker.Pro зачем ты пытаешься сохранить документ до того, как пользователь явно это захотел. Пиши все в момент сохранения - не будет этой проблемы так и стал делать, просто хотелось чтобы было что-то НАКЛАДНАЯ10 и т.д ,решил просто НАКЛАДНАЯ оставить) вот только че то код который я привел не работает и на это могли бы ответить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 00:21 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05adm так и стал делать, просто хотелось чтобы было что-то НАКЛАДНАЯ10 и т.д ,решил просто НАКЛАДНАЯ оставить) а давать номер заранее нельзя. Если второй пользователь создаст тем временем накладную 11, а первый откажется от накладной 10 - в нумерации будет дырка, а так нельзя, особенно это касается кассовых документов и фактур ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 00:52 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Shocker.Proа давать номер заранее нельзя. Если второй пользователь создаст тем временем накладную 11, а первый откажется от накладной 10 - в нумерации будет дырка, а так нельзя, особенно это касается кассовых документов и фактур вот это и смущало Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. вторая вот Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 01:08 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
scope_identity() для MSSQL надо юзать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 10:19 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Konst_Onescope_identity() для MSSQL надо юзать. у него MYSQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 10:49 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Shocker.ProKonst_Onescope_identity() для MSSQL надо юзать. у него MYSQL про этот не знаю, надо смотреть документацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 11:01 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Konst_Oneпро этот не знаю, надо смотреть документацию что-то ты не проснулся у него все есть в коде: select last_insert_id() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 11:03 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Shocker.ProKonst_Oneпро этот не знаю, надо смотреть документацию что-то ты не проснулся у него все есть в коде: select last_insert_id() я подумал, что это его собственная ф-я. а транзакции присутствуют в базе MySQL? если да, то их надо юзать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 11:20 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: Shocker.Pro > что-то ты не проснулся это я наверное не проснулся :) А что появилась какая-то штатная функция для получения ID мастер-записи при вставке деталей??? И я, как партизан, продолжаю пускать под откос поезда, несмотря на то что война закончилась?!?!?!?!? я знаю два способа: 1) работает на MSSQL и FB После вставки мастер-записи возвращаем на клиента ID вставленной записи. И все детали вставляем привязывая их к ID мастера. 2)работает на FB (на MSSQL может и работает, но не знаю как предварительно получить код Identity-поля) Получаем код мастера, от сервера. Вставляем одного мастера с полученым кодом и кучу деталей. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 11:26 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, Игорь ГорбоносПосле вставки мастер-записи возвращаем на клиента ID вставленной записи. И все детали вставляем привязывая их к ID мастера. это у вас все в одной процедуре делается? у меня также Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 11:46 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: aduka05adm Код, конечно другой, но в целом да Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. записи-детали :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 11:53 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: Игорь Горбонос Да, это фрагмент псевдо-кода на фокспро для MSSQL2000 Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 11:54 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, понятно спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 11:56 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
еще хотел спросить про COMMAND Код: 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. еще про поля date и time хотел спросить какую длину указывать в параметре? и еще как нормально из grid-a записывать в базу? мой способ не очень мне нравится , так как хотелось бы потом распечатать данные из grid-a заранее благодарю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 16:55 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
поправил чуть код по этому примеру Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. а если больше то выходит такая ошибка -2147467259[MySQL][ODBC 3.51 Driver][mysqld-5.1.38-community]Incorrect number of arguments for PROCEDURE it.add_to_registrusl; expected 7, got 14 ошибка на этой строке Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 17:51 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
а зачем вы в цикле несколько раз добавляете параметры и потом выполняете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 17:52 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Konst_One, потому что я в grid-e удаляю строки и по первой строке указываю параметр Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 18:00 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Konst_One, это строка добавляет параметр Код: plaintext Код: plaintext по идее передавала бы себе в цикле каждый раз и нормально каждый раз по 7 параметров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 18:04 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: aduka05adm > по идее передавала бы себе в цикле каждый раз и нормально > каждый раз по 7 параметров Ты или перед каждум созданием параметров очищай коллекцию параметров(что не есть гуд :) ) или один раз создай параметры и в цикле присваивай им разные значения(собственно это и есть основной плюс параметров :) ) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 18:44 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, Игорь ГорбоносТы или перед каждум созданием параметров очищай коллекцию параметров(что не есть гуд :) ) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. и в цикле присваивай им разные значения(собственно это и есть основной плюс параметров :) ) щас буду пробовать ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 19:16 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: aduka05adm блин, Адука, ну что же ты делаешь? давай ещё впендюрь туда пару циклов до милиона, что-бы показать пользователю как "тяжела и неказиста, жизнь простого программиста" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Вот и вся проба Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 19:47 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, ваш код бомба вообще)) спасибо большое) хотел еще спросить читал что можно печатать с формы причем на основании шаблона так вот подскажите направление) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 20:03 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05adm, Насчет печати формы, у самой формы есть метод Print, который выводит форму на принтер. Я им никогда не пользовался, потому что попробовал один раз, мне не подошло, и я сделал перенос картинки из PictureBox'а в вмр на диске и последующую вставку картинки в ворд с нужным текстом(мне нужно было коммерческое предложение делать) как бонус - получил возможность редактирования конечного файла перед печатью :) Насчет шаблона не слышал, если что-то ещё помнишь, то по-подробнее плиз :) З.Ы. Кстати практически у всех коллекций есть метод Clear который очищает всю коллекцию сразу и не нужно устраивать цикл по-элементного удаления ;) Это к удалению параметров :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2010, 23:31 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Адука, не вникал в твои примеры, просто хочу подсказать.... У коллекции Command.Parameters есть такой метод Refresh Он сам заполняет коллекцию параметров, запросив ее у сервера (соответственно, имя процедуры, тип и т.п. уже должно быть заполнено). После чего ты заполняешь коллекцию значениями и выполняешь процедуру. С одной стороны - это лишний запрос к серверу, с другой стороны - не требуется мучиться с параметрами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 00:15 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Shocker.ProС одной стороны - это лишний запрос к серверу, с другой стороны - не требуется мучиться с параметрами. из за этого и мучался , хотя refresh намного проще Игорь Горбонос Насчет шаблона не слышал, если что-то ещё помнишь, то по-подробнее плиз :) щас поищу здесь где то на форуме читал) опять вопрос у меня возник) создал две функции Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. и еще спросить хотел , создал процедуру которая закрывает соединения, рекордсет и комманд Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 00:36 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, самый простой способ)) и видимо то что мне запомнилось Игорь ГорбоносЗ.Ы. Кстати практически у всех коллекций есть метод Clear который очищает всю коллекцию сразу и не нужно устраивать цикл по-элементного удаления ;) Это к удалению параметров :) это у меня на автомате так ) в интернете нашел пример по очистке LISTBOX(цикл) и понеслось) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 00:57 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
ADO Connection & Recordset Functions сделал по данному примеру и все заработало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 15:10 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: aduka05adm > и ... заработало А что хоть, не работало?!?! Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 15:25 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, было так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. сделал так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ну и функции подправил было Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. стало) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. aduka05admвыходит ошибка argument not optional в этом проблема была ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 16:25 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> автор: aduka05adm > было так > сделал так ну, особой разницы не заметил, учитывая дальнейший комментарий. см. ниже :) > ну и функции подправил > было > стало) то что ты подправил свои функции работы с коннекшином и рекордсетом это похвально, НО! я ни в одной из функций не вижу обработки ошибок :) И если вдруг что-то случится, вся программа скажет "до свидания" :) Это и правильно :) При ошибках нужно так и делать :) Класс, которым я пользуюсь в VBA, если нужно что-то вытащить из какой-нить базы Option Explicit Private cn As New ADODB.Connection Private cmd As New ADODB.Command Private bIsOpen As Boolean 'Private mProgramSettings As CProgramSettings '*********************************************************************** '* Открывает коннест к базе '*********************************************************************** Function OpenConnect(sConnectionString As String) As Boolean Dim sErrDesc As String OpenConnect = False bIsOpen = False On Error GoTo labErr 'cn.Provider = "LCPI.IBProvider" cn.Open sConnectionString 'cn.State cmd.ActiveConnection = cn OpenConnect = True bIsOpen = True 'cn.BeginTrans Exit Function labErr: 'OpenConnect = False sErrDesc = Err.Description sErrDesc = Replace(sErrDesc, vbLf, " | ", , , vbTextCompare) 'Call OutputErrorMessage(sErrDesc, , , "OpenConnect") End Function '*********************************************************************** '* Закрывает коннест к базе '*********************************************************************** Private Sub CloseConnect() On Error GoTo labErr 'cn.CommitTrans labErr: cn.Close Set cn = Nothing Set cmd = Nothing End Sub 'Private Sub CreateProgramSettings() ' Set mProgramSettings = New CProgramSettings ' ' ' Set property settings to determine where the settings will ' ' be saved. In this example, the settings to into the same location ' ' used by the VB SaveSetting/GetSettings routines. This could be your ' ' company name, or the name of another known company such as "Microsoft" ' ' With mProgramSettings ' .RootKey = psrHKEY_LOCAL_MACHINE ' .MainBranch = "SOFTWARE" ' .RegBase = "ECUS" ' .Program = "DBOptions" ' .Section = "" ' ' End With ' 'End Sub '*********************************************************************** '* Выполняет запрос подготовленный заранее '*********************************************************************** Public Function ExecQueryBase(sSql As String) As Boolean Dim sErrDesc As String Dim erCur As ADODB.Error On Error GoTo labErr ExecQueryBase = False If Not bIsOpen Then ' If Not OpenConnect Then Exit Function ' End If End If 'If cn.State = adStateClosed Then Exit Function cn.BeginTrans cmd.CommandText = sSql cmd.Prepared = True cmd.Execute cn.CommitTrans ExecQueryBase = True Exit Function labErr: On Error Resume Next If cn.State <> adStateClosed Then cn.RollbackTrans End If sErrDesc = "" 'Err.Description & " <-> " ' Get the ADO errors. If cn.Errors.count > 0 Then For Each erCur In cn.Errors sErrDesc = sErrDesc & erCur.Source & ": " & erCur.Description & " | " Next erCur End If sErrDesc = Replace(sErrDesc, vbLf, " | ", , , vbTextCompare) Call OutputErrorMessage(sErrDesc, , , "ExecQueryBase", cmd.CommandText) End Function '*********************************************************************** '* Выполняет запрос подготовленный заранее '*********************************************************************** Public Function ExecQueryBaseRS(sSql As String) As ADODB.Recordset Dim sErrDesc As String Dim erCur As ADODB.Error Set ExecQueryBaseRS = Nothing 'If Not bIsOpen Then ' If Not OpenConnect Then ' Exit Function ' End If 'End If 'cn.BeginTrans On Error GoTo labErr cmd.CommandText = sSql cmd.Prepared = True Set ExecQueryBaseRS = cmd.Execute.NextRecordset 'cn.CommitTrans Exit Function labErr: If cn.State <> adStateClosed Then cn.RollbackTrans End If sErrDesc = "" 'Err.Description & " <-> " On Error Resume Next ' Get the ADO errors. If cn.Errors.count > 0 Then For Each erCur In cn.Errors sErrDesc = sErrDesc & erCur.Source & ": " & erCur.Description & " | " Next erCur End If sErrDesc = Replace(sErrDesc, vbLf, " | ", , , vbTextCompare) Call OutputErrorMessage(sErrDesc, , , "GetID", cmd.CommandText) End Function '*********************************************************************** '* Получает из базы значения генераторов '* для вставки данных в базу '*********************************************************************** 'Public Function GetId(val As TypeID) As Long 'Dim sErrDesc As String 'Dim erCur As ADODB.Error ' ''If Not bIsOpen Then '' If Not OpenConnect Then '' Exit Function '' End If ''End If ' 'On Error GoTo labErr 'cn.BeginTrans 'Select Case val 'Case ID_PHONE ' cmd.CommandText = "execute procedure SP_GEN_INF_PHONE_ID" 'Case ID_SUBSCRIBER ' cmd.CommandText = "execute procedure SP_GEN_INF_SUBSCRIBER_ID" 'Case ID_DIVISION ' cmd.CommandText = "execute procedure SP_GEN_INF_DIVISION_ID" 'End Select ' 'automating defining of parameters ---------------------------------------------- ''cmd.Parameters.Refresh 'cmd.Parameters.Append cmd.CreateParameter("ID", adInteger, adParamOutput) 'cmd.Execute 'GetId = cmd.Parameters("ID").Value 'cmd.Parameters.Delete (0) 'cn.CommitTrans 'Exit Function 'labErr: 'cmd.Parameters.Delete (0) 'If cn.State <> adStateClosed Then ' cn.RollbackTrans 'End If ' 'sErrDesc = "" 'Err.Description & " <-> " ' 'On Error Resume Next ' '' Get the ADO errors. 'If cn.Errors.Count > 0 Then ' For Each erCur In cn.Errors ' sErrDesc = sErrDesc & erCur.Source & ": " & erCur.Description & " | " ' Next erCur 'End If 'sErrDesc = Replace(sErrDesc, vbLf, " | ", , , vbTextCompare) 'Call OutputErrorMessage(sErrDesc, , , "GetID", cmd.CommandText) 'Err.Raise 70, "GetID" 'End Function Public Sub ClearDataInBD() ' Очищаем БД от данных 'If Not bIsOpen Then ' If Not OpenConnect Then ' If g_iRowError > 2 Then ' If Not shErr Is Nothing Then ' shErr.Visible = xlSheetVisible ' shErr.Select ' Set shErr = Nothing ' g_iRowError = 2 ' End If ' End If ' Exit Sub ' End If 'End If Call ExecQueryBase("delete from INF_SUBSCRIBER") Call ExecQueryBase("delete from INF_DIVISION") Call ExecQueryBase("delete from INF_PHONE") Call ExecQueryBase("delete from INF_LINK_PDS") Call ExecQueryBase("delete from CATEG") End Sub Private Sub Class_Initialize() 'If Not OpenConnect Then ' Err.Raise vbObjectError + 1, "clsDataBaseWork : Class_Initialize", _ ' , ThisWorkbook.Path & "\Создание_справочника.chm" 'End If End Sub Private Sub Class_Terminate() Call CloseConnect End Sub Класс изначально ориентировался на работу с FireBird'ом и обладал некоторой спецификой, сейчас, выродился в простую установку соединения и выполнения каких-то коммандных запросов, типа вставок или удалений, или выполнение запросов возвращающих рекордсет. Вот пример заливки данных их екселя в БД, причем в виде мастер-детаил :) Option Explicit Dim g_BD As clsDataBaseWork Dim v As Variant Dim mCol As Collection Dim sh As Worksheet, shOut As Worksheet Sub LoopInData() If g_BD Is Nothing Then Set g_BD = New clsDataBaseWork End If Set mCol = New Collection 'Set sh = Application.Worksheets("Лист3") Set sh = Application.Worksheets("Лист1") ' Если база не открылась, работать дальше нельзя If Not g_BD.OpenConnect("Provider=sqloledb;Data Source=igor;Initial Catalog=ttt;Integrated Security=SSPI;") Then Set g_BD = Nothing Exit Sub End If Dim nRow As Long, nCol As Long, i As Long nRow = 1 nCol = 1 For nRow = 2 To 666 sh.Cells(nRow, 15).Value = InsertRec(nRow) Next nRow Set g_BD = Nothing Set mCol = Nothing Set sh = Nothing Set shOut = Nothing End Sub Function InsertRec(nRow As Long) As String Dim s As String, sCode As String, rs As Recordset s = "INSERT INTO [ttt].[dbo].[objects](code_owher, name, land_tipe, number, code_land, adres) VALUES(" & _ CStr(sh.Cells(nRow, 1).Value) & ", '" & Trim(CStr(sh.Cells(nRow, 3).Value)) & "', " & _ CStr(sh.Cells(nRow, 4).Value) & ", " & CStr(sh.Cells(nRow, 5).Value) & ", " & _ CStr(sh.Cells(nRow, 6).Value) & ", " & CStr(sh.Cells(nRow, 7).Value) & ", " & _ vbCrLf & "SELECT SCOPE_IDENTITY() AS code" Set rs = g_BD.ExecQueryBaseRS(s) 'rs.MoveFirst sCode = CStr(rs.Fields("code").Value) Set rs = Nothing InsertRec = sCode s = "INSERT INTO [ttt].[dbo].[objects_plus_directions](code_directions, code_objects) VALUES(" & _ CStr(sh.Cells(nRow, 14).Value) & ", " & sCode & ")" Call g_BD.ExecQueryBase(s) 'Call g_BD.ExecQueryBase(s) 'rs.MoveFirst Debug.Print s End Function Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 17:38 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Класс, которым я пользуюсь в VBA, если нужно что-то вытащить из какой-нить базы Код: 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. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. щас будем разбираться спасибо вам) Вот пример заливки данных их екселя в БД, причем в виде мастер-детаил :) Код: 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. это так для читабельности) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 18:18 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
можно вопросы ) Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 18:36 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05admможно вопросы ) это че функция типо не выполняется? ................. а здесь пустили на выполнение? .................... нет :) т.к. функция возвращает логическое значение показателя удачности установки соединения, то для экономии, изначально предполагается что функция не выполнится и поэтому присваиваем False. Если установка соединения произошла успешно, тогда изменяем возвращаемое значение на True aduka05adm и еще ............... f Not bIsOpen Then ' прикольно замутили ) ................ Там изначально была проверка на неоткрытость соединения с БД и попытка установить соединение, а потом из-за чего-то переделал как сейчас aduka05adm как раз искал пример , он же работает только в пределах одного connection? а если я в пределах одного connection делаю несколько запросов со вставкой и обн-ем они все отменятся? Да, все что будет выполненно между BeginTrans и CommitTrans будет считатся атомарной операцией, и если что-то пойдет не так, откатится всё что было выполненно с момента подачи команды BeginTrans aduka05admтоже прикольно :) это из МСДН, пример обработки ошибок aduka05adm а это где)? а вот оно :) Недостающий остаток для примера заливки данных Код: 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. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 19:02 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, спасибо )) будем думать и учиться Игорь ГорбоносНедостающий остаток для примера заливки данных это вы так лог ведете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 19:10 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: aduka05adm > это вы так лог ведете? Для екселя, да. А вообще там может быть и запись в файл, и в базу и ещё куда нить :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 19:20 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
доработал Код: 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. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. гляньте когда время будет , может че неправильно делаю или попроще можно сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2010, 22:52 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: aduka05adm > +доработал Это у тебя класс или просто набор функций в модуле? Если это класс, то я не вижу смысла в приватных переменных strquery, proc, strconn уровня класса без свойств Let и Get. Можно понять если бы ты, объявил константой строку подключения, но ты этого не сделал :) .Вынесено объявление парметров, такой-же вопрос - для чего они на уровне класса, без соответствующих свойств для чтения/установки по имени/номеру. Рекордсет - зачем он для всего класса? Запрос выполнили, получили в результате рекордсет, отдали его вызывавшему и забыли, зачем хранить его в переменной? Это лишняя связь удерживающая ресурсы, пока этой переменной не присвоить Nothing или новый рекордсет, старый будет "болтатся" в памяти. Не понятно, что делает функция заполнения грида в классе работы с SQL server'ом ? Это если у тебя класс, теперь если у тебя модуль и просто набор функций, но эти вопросы касаются и класса :) Мне не понравились имена параметров функций, совпадающие с именами функций. Читая код не понятно, ты используешь параметр или вызываешь функцию. Теперь просто критика :) Не во всех функциях у параметров указаны типы данных, и в функции вывода лога в БД не предусмотренна обработка ошибок и ни в одной из функций не предусмотренна проверка корректности передаваемых параметров. Вполне возможен случай(у меня зачастую бывает :) ) создал таблицу, заполнил её данными, а потом пишу селект из клиентского приложения, а мне в ответ ошибка. Потому, что забыл дать права на селект. Так вот, у тебя соединение установится, а при попытке выполнить запрос может свалится и функция вернёт не рекордсет, а Nothing а т.к. проверок нет, вывалится :( Это, то что сразу бросилось в глаза :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2010, 10:43 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, Игорь ГорбоносЭто у тебя класс или просто набор функций в модуле? набор функций в модуле Игорь ГорбоносЕсли это класс, то я не вижу смысла в приватных переменных strquery, proc, strconn уровня класса без свойств Let и Get. я даже не в курсе как надо в классе че делать , надо поинтересоваться как с ним работать Игорь ГорбоносМожно понять если бы ты, объявил константой строку подключения, но ты этого не сделал :) верно , я вообще константы никогда не использую ) Игорь ГорбоносРекордсет - зачем он для всего класса? Запрос выполнили, получили в результате рекордсет, отдали его вызывавшему и забыли, зачем хранить его в переменной? Код: plaintext 1. 2. 3. 4. если имеете ввиду эту строку Код: plaintext Игорь ГорбоносМне не понравились имена параметров функций, совпадающие с именами функций думал понятней будет , получилось наоборот ) Игорь ГорбоносТеперь просто критика :) тоже думал это поправить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2010, 13:26 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05admИгорь ГорбоносРекордсет - зачем он для всего класса? Запрос выполнили, получили в результате рекордсет, отдали его вызывавшему и забыли, зачем хранить его в переменной? Код: plaintext 1. 2. 3. 4. а теперь представим ситуацию, что во время выполнения произошла ошибка и эта строка не выполняется, а выполняется код: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2010, 14:31 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбоносaduka05admИгорь ГорбоносРекордсет - зачем он для всего класса? Запрос выполнили, получили в результате рекордсет, отдали его вызывавшему и забыли, зачем хранить его в переменной? Код: plaintext 1. 2. 3. 4. а теперь представим ситуацию, что во время выполнения произошла ошибка и эта строка не выполняется, а выполняется код: Код: plaintext 1. 2. 3. 4. 5. 6. если переменная rs объявлена в рамках ф-ии/процедуры, то ничего не страшно, а вот если глобально, то да, могут быть проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2010, 14:36 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, Игорь Горбоноса здесь нет освобождения рекордсета, а он создан по New :) надо будет туда тоже добавить) Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2010, 15:07 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Konst_One, Konst_Oneесли переменная rs объявлена в рамках ф-ии/процедуры, то ничего не страшно а что с ним будет происходить тогда в данном случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2010, 15:08 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05admKonst_One, Konst_Oneесли переменная rs объявлена в рамках ф-ии/процедуры, то ничего не страшно а что с ним будет происходить тогда в данном случае? уничтожится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2010, 15:10 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Konst_One, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2010, 15:26 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05adm, Моя рекомендация, когда заканчиваешь работу с рекордсетом - всегда делать Код: plaintext 1. Не делая так, наблюдал странные глюки АДО, став делать всегда так - этих глюков более не наблюдаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2010, 16:14 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, а если я делаю так Код: 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. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2010, 18:38 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05admа если я делаю так тебе тут не нужен rs работай сразу с переменной get_rs и ничего никому не переприсваивай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 00:24 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 00:33 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
есть вопрос Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. но вот id начинают идти не по порядку было допустим так id name1 name2 name начинаем опять заносить товар id name1 name2 name3name допустим получилась ошибка делаем откат , записи удаляются но при следующей удачной операции становится так id name1 name2 name4 name так вот хотелось бы узнать это на всех sql серверах так ? если да то как решаете данную проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 15:44 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05admтак вот хотелось бы узнать это на всех sql серверах так ? если да то как решаете данную проблему? Да, разумеется. Но это не является проблемой, поэтому никто ее не решает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 15:46 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
для IDENTITY полей в MS SQL можно сделать RESEED: Код: plaintext возможно есть аналогичная возможность и для MySQL. а от дырок в унпикальном поле , если удалили промежуточное значение, вы никак не избавитесь. если вам нужна сквозная нумерация, то делайте это вычисляемым/синтетическим полем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 15:54 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Konst_One, только до такого допер Код: plaintext 1. 2. Но это не является проблемой, поэтому никто ее не решает я просто нумерацию документам даю по полю id , он у меня AUTO_INCREMENT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 17:07 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05admKonst_One, только до такого допер Код: plaintext 1. 2. Но это не является проблемой, поэтому никто ее не решает я просто нумерацию документам даю по полю id , он у меня AUTO_INCREMENT это плохое решение. делайте нумерацию отдельным вычисляемым полем или на клиенте. можете делать через промежуточную таблицу с дополнительным столбцом идентити, которую заполняте запросом и отдаёте клиенту уже с нужной нумерацией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 17:10 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05admя просто нумерацию документам даю по полю id , он у меня AUTO_INCREMENT Это категорически неверное решение! Нумерация документов неуникальна для разных юрлиц и, зачастую, внутри одного года. Кроме того, ты сталкиваешься с вышеуказанными проблемами. Кроме того, у тебя могут возникнуть подтипы одного и того же документа с разной нумерацией. В общем - ID - это ни в коем случае не пользовательское поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 18:10 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
спасибо всем будет думать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 20:27 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
в общем открыл тему здесь но че то молчание в общем разобрался Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. , только вопрос если я на клиенте делаю транзакцию Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. будут ли блокироваться таблицы к которым я обращаюсь? и не сможет ли второй пользователь выполнить данную операцию с этими таблицами пока первый не закончил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2010, 19:09 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05adm будут ли блокироваться таблицы к которым я обращаюсь? и не сможет ли второй пользователь выполнить данную операцию с этими таблицами пока первый не закончил? Будут, но.... изучай транзакции (типы, изоляцию и т.п.), применительно к MySQL. В MSSQL эта тема на хороший томик тянет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2010, 22:36 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Shocker.ProВ MSSQL эта тема на хороший томик тянет.. спасибо , ну томик это долго, надо будет через лист читать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2010, 22:56 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
aduka05admспасибо , ну томик это долго, надо будет через лист читать) если у тебя простая и быстрая операция выполняется в транзакции и три пользователя в системе, можешь не думать о том, как будут блокироваться таблицы, ибо все это все равно произойдет быстро, а ситуация возникнет редко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2010, 23:05 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, ну да я тоже так думаю, по большому счету я вообще думаю что извлечение max(id) потом прибавления +1 и вставки этого значение не займет больше чем 1 сек и вряд ли проблемы будут но для уверенности лучше транзакцию) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2010, 23:12 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: aduka05adm > по большому счету я вообще думаю ... и вряд ли проблемы будут Зря так думаешь, воспользуйся стандартными средствами получения уникального идентификатора, дабы в будущем не разгребать проблемы конфликтов > но для уверенности лучше транзакцию) И транзакция тебе здесь никак не помошница, потому, что она обеспечивает "согласованность" данных, а не уникальность :) P.S. Например Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2010, 11:33 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос Зря так думаешь, воспользуйся стандартными средствами получения уникального идентификатора, дабы в будущем не разгребать проблемы конфликтов Это он получает номер следующего документа. Мы его как раз с Костей отговорили пользоваться identity для этих целей. Да и номер может быть не уникальным, скажем, в пределах года. Лично я в таком случае блокирую таблицу вообще на доступ для получения следующего номера. Ибо вероятность того, что два юзера одновременно в одну секунду введут документ достаточно низкая, ну ничего, один секундочку и подождет.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2010, 11:50 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: Shocker.Pro > Это он получает номер следующего документа. О! Кемська волость! (с) Сори, Адука, не читай меня! Я был не прав! В искупление могу привести свой алгоритм получения такого номера: собственно говоря тот-же max(number), но у меня "двухфазный" способ получения номера :) При формировании "нового" документа ему присваивается max(number)+1, после рассмотрения и утверждения руководством ему присваивается тот-же max(number)+1, но с дополнительными условиями уже одобренных руководителем. Получается как-бы двойная нумерация, хотя она и не является "бездырочной", но наших пользователей устраивает. Есть ещё вариант с отдельной таблицей, в которую заранее генерятся номера на год вперёд, с запасом. При формировании документа, ему присаивается какой-то предварительный номер, а после окончательного утверждения и согласования, берётся последний свободный из спец-таблички, помечается как занятый и присваивается утверждаемому документу. На мой взгляд вариантом с отдельной таблицей проще обеспечить "бездырочную нумерацию", мне она не нужна :) P.S. Да, у меня number - это varchar(64) потому что при импорте новых документов, я туда ещё и описание дописываю, хотя к финишу приходят в основном цифры, и для некоторых филиалов с буквой :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2010, 12:17 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, Игорь ГорбоносВ искупление могу привести свой алгоритм получения такого номера: благодарю)) Игорь ГорбоносДа, у меня number - это varchar(64) потому что при импорте новых документов, я туда ещё и описание дописываю, отдельное поле завел для этого Игорь Горбоносв которую заранее генерятся номера на год вперёд, с запасом это мне придется хранить где то , последний номер который брал первый вариант попроще спасибо за советы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2010, 13:01 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
"aduka05adm" <nospam@sql.ru> сообщил/сообщила в новостях следующее: news:9192837@sql.ru... > Автор: aduka05adm > Игорь Горбонос, > Игорь Горбонос > В искупление могу привести свой алгоритм получения такого номера: > > благодарю)) > Игорь Горбонос > Да, у меня number - это varchar(64) потому что при импорте новых документов, я туда ещё и описание > дописываю, > > отдельное поле завел для этого > Игорь Горбонос > в которую заранее генерятся номера на год вперёд, с запасом > > это мне придется хранить где то , последний номер который брал > первый вариант попроще > спасибо за советы) > Тема Ответить Сообщение > Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2010, 13:13 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, Ой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2010, 13:14 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: aduka05adm > это мне придется хранить где то , последний номер который брал А по самой таблице, нельзя понять? В таблице как минимум три поля, id - автоинкремент, number - номер для досументов, и что-то типа date_use - дата когда заняли номер. Можно ещё завести дополнительные поля и хранить там привязки к чему хочешь :) > первый вариант попроще Не спорю :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2010, 13:17 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
> Автор: Shocker.Pro > Игорь Горбонос, > Ой? Так отож Кнопки перепутал Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2010, 13:17 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, если иметь такую таблицу и создать допустим 1000 записей то когда придет время 1001 придется дописывать ручками ну или создать процедуру которая сама еще 1000 добавить )) в общем понятно спасибо)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2010, 13:43 |
|
||
|
Полуение уникального ID
|
|||
|---|---|---|---|
|
#18+
писал вопрос здесь так вот правильный ход размышдений у меня ?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2010, 14:55 |
|
||
|
|

start [/forum/topic.php?all=1&fid=60&tid=2159523]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
92ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 206ms |

| 0 / 0 |
