Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
vova_braha
Member

Откуда:
Сообщений: 17
Для работы с базой данных Microsoft SQL Server 2000 используются стандарные компоненты Borlad C++ (через ADO). Программа работает корректно, сервер не выдает ошибок. Но, данные просто теряются, пропадают строки случайным образом, хотя никакких операций с этими строками не происходит!
Буду рад ответу! Спасибо за советы :) !!!!!!!!!
16 сен 03, 12:05    [340310]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
Glory
Member

Откуда:
Сообщений: 104760
Но, данные просто теряются, пропадают строки случайным образом, хотя никакких операций с этими строками не происходит!

Ну вот поставите триггер на операцию DELETE и узнаете точно - происходят эти операции или не происходят.
16 сен 03, 12:12    [340321]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
Или profiler поюзать ...
16 сен 03, 12:22    [340347]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
vova_braha
Member

Откуда:
Сообщений: 17
Спасибьо за совет! Я никогда не работал с SQL Сервером и программирую не СУБД, а вообще "железо", но потребовалось вот написать базу для ведения складского учета :). То, что DELETE не происходит - это 100% гарантия (хотя, если можно, то подскажите, как написать триггер). Суть потери данных состоит в том, что строки таблицы случайным образом пропадают, в резервной таблице (я ее сохранил), эти строки присутствуют !!! Другое дело, что сервер иногда "подвесает" (так как на компе работают), возможно, что это приводит к потерям ?????????????????
16 сен 03, 12:23    [340352]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
Glory
Member

Откуда:
Сообщений: 104760
Я никогда не работал с SQL Сервером и программирую не СУБД, а вообще "железо", но потребовалось вот написать базу для ведения складского учета

Мда

Другое дело, что сервер иногда "подвесает" (так как на компе работают), возможно, что это приводит к потерям ?????????????????

два раза Мда
16 сен 03, 12:34    [340376]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31602
2vova_braha

Я никогда не работал с "железом" и программирую вообще SQL Сервер, но потребовалось вот написать программу для автомобильного контроллера двигателя. Я использую стандартные компоненты BMW. Программа работает корректно, автомобиль не выдает ошибок. Но, двигатель иногда глохнет, а бензин из бака просто теряется.
Буду рад ответу! Спасибо за советы :) !!!!!!!!!
16 сен 03, 12:49    [340418]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
vova_braha
Member

Откуда:
Сообщений: 17
Поливать грязью может каждый (И делать вил, что он проффи!!!), а на самом деле человек этим показывает отсутствие ПРОФФЕСИОНАЛИЗМА!!!! (Если я в этом не проффи, то я об этом говорю открыто, а если ВЫ не можете помочь советом, то это тоже говорит ОБ ОТСУТСТВИИ ПРОФЕССИОНАЛИЗМА)!!!
16 сен 03, 13:37    [340539]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
vova_braha
Member

Откуда:
Сообщений: 17
А триггер я настроил, как и Profiler! Буду ждать результатов! СПАСИБО ЗА СОВЕТЫ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16 сен 03, 13:38    [340544]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
CREATE TRIGGER MyTriggerNaMojuTablicu

ON MojaTablica
FOR DELETE
AS
declare @Cnt
select @Cnt=count(*) from deleted

raiserror('Какой то кАзел пытается удалить записи из таблицы MojaTablica!', 16, 1)
16 сен 03, 13:46    [340577]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
vova_braha
Member

Откуда:
Сообщений: 17
СПАСИБО за пример триггера! Сечас попробую !
16 сен 03, 13:52    [340605]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
vova_braha
Member

Откуда:
Сообщений: 17
СПАСИБО за пример триггера! Сечас попробую !
16 сен 03, 13:53    [340611]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Так прикольней будет (сперва не дописал, но хотел)

CREATE TRIGGER MyTriggerNaMojuTablicu

ON MojaTablica
FOR DELETE
AS
declare @Str nvarchar(200)
select @Str='Какой то кАзел УДАЛИЛ '+cast(count(*) as nvarchar)+' строк из таблицы MojaTablica!' from deleted

raiserror(@Str, 16, 1)
16 сен 03, 13:58    [340622]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
vova_braha
Member

Откуда:
Сообщений: 17
Возвращает ошибку "Must declare the varible @Cnt"??????????????????
16 сен 03, 13:59    [340623]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31602
declare @Cnt int
16 сен 03, 14:01    [340627]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
vova_braha
Member

Откуда:
Сообщений: 17
2 alexeyvg : Работает, но дело не в том, что данные кто-то удаляет! Некоторые строки просто исчезают из таблицы!!! Понимаешь? Никто их не удаляет , они безследно исчезают! Есть рецепт?
16 сен 03, 14:07    [340644]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
vova_braha
Member

Откуда:
Сообщений: 17
Можно ли написать триггер, чтобы он отслеживал потери данных из таблицы???????????????
16 сен 03, 14:12    [340660]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31602
2vova_braha

"Никто их не удаляет , они безследно исчезают!"

Они не исчезают, их кто-то удаляет. Может, в следующей версии MS добавит фичу случайного исчезания строк, но пока её нет.

Значит, их кто-то удаляет. Осталось выяснить, кто.

1. Триггер. Только надо, что-бы писал в лог виндов, т.к. raiserror ловить некому.

CREATE TRIGGER MyTriggerNaMojuTablicu
ON MojaTablica
FOR DELETE
AS
declare @Str nvarchar(200)
select @Str='кАзел "' + isnull(SUSER_SNAME(), 'unknown') + '" из хоста "' + isnull(HOST_NAME(), 'unknown') + '" УДАЛИЛ '+cast(count(*) as nvarchar)+' строк из таблицы MojaTablica!' from deleted
raiserror(@Str, 16, 1) WITH LOG
go


2. Профайлер.
Не забыть поставить вход внутрь процедур и триггеров. Потом искать в тексте имя таблицы
16 сен 03, 14:19    [340689]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
bushmen
Member

Откуда: г. Москва
Сообщений: 828
В raiserror надо бы добавть дату и имя пользователя, удаляющего данные
16 сен 03, 14:58    [340811]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31602
Имя есть:
select @Str='кАзел "' + isnull(SUSER_SNAME(), 'unknown') +.....

Ну а дату тоже надо.

Собственно, можно добавить и стэйтмент, которым удалили, хотя это немного сложнее. См. БОЛ, fn_get_sql()
Пример:
DECLARE @Handle binary(20)
SELECT @Handle = sql_handle FROM sysprocesses WHERE spid = @spid
SELECT * FROM ::fn_get_sql(@Handle)
16 сен 03, 15:05    [340827]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
bushmen
Member

Откуда: г. Москва
Сообщений: 828
Главное, найти того, кто удаляет. А дальше уже дело техники
16 сен 03, 15:11    [340839]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
Glory
Member

Откуда:
Сообщений: 104760
Во всем этом меня волнует фраза "Другое дело, что сервер иногда "подвесает" (так как на компе работают), возможно, что это приводит к потерям ????????????????? "

Возможно речь идет об MSDE и вполне возможно, что "подвисание" ликвидируют с помощью "убийства" программы (если вообще не reset-ом). А в этом случае все зависит от того какие транзакции после запуска sql-я будут откачены вперед, а какие назад.
16 сен 03, 15:12    [340843]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
bushmen
Member

Откуда: г. Москва
Сообщений: 828
Главное, найти того, кто удаляет. А дальше уже дело техники
16 сен 03, 15:17    [340857]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
vova_braha
Member

Откуда:
Сообщений: 17
ЛЮДИ! С таблице работает только один человек - я (я же не буду удалять строки ? Ибо не Казел :) !!!!) Добавил новый элемент в базу данных, потом его не трогаю, через время начинаю искать - а его то нет. Все дело втом, что на компе, где стоит сервер, работаю на Designed Space, который при расчетах подвисает комп!!!!!! При работе с БД ошибок нет!!!! Может ли "подвисание" компа приводить к потерям данных?
16 сен 03, 15:21    [340868]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
bushmen
Member

Откуда: г. Москва
Сообщений: 828
>Glory
Я понимаю, если бы данные изменялись, тогда я могу ещё понять, но исчезать... не представляю
16 сен 03, 15:22    [340869]     Ответить | Цитировать Сообщить модератору
 Re: Теряются данные из SQL Сервера ПОМОГИТЕ!!!!  [new]
Glory
Member

Откуда:
Сообщений: 104760
2bushmen
Я понимаю, если бы данные изменялись, тогда я могу ещё понять, но исчезать... не представляю
Если откатится транзакция в котрой эти данные были добавлены, то почему бы эти данным не исчезнуть ???

2vova_braha
Все дело втом, что на компе, где стоит сервер, работаю на Designed Space, который при расчетах подвисает комп!!!!!!

И что делают с сервером в этом случае ???
16 сен 03, 15:26    [340881]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить