Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Linked Server на FoxPro проблема с датами...  [new]
Pestov
Member

Откуда:
Сообщений: 63
Господа, есть такой трабл... Линкую фоксовскую базу, там есть таблица в которой есть поле с типом данных дата, в Фоксе тип Date типа короткий, 01-01-2003. Делаю запрос в ЕМ по этой таблице с условием по дате и... Фиг там... Ощущение такое, что этот тип SQL не понимает и представляет как строковый. Попытка сделать DTS'ку, которая реплицировала бы таблицу в локальный SQL сервер тоже терпит неудачу, так как ругается на это поле, мол переполнение, не помогают типы данных ни DateTime ни SmallDateTime.... Что делать то? А? Помогите, может кто сталкивался с такой траблой? Причем поля, которые в Фоксе объявленные как DateTime прекрасно и реплицируются и работают в условиях. Изменить тип данных поля в Фоксе не могу... :-(
17 мар 03, 12:41    [148925]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
NNN
Member

Откуда:
Сообщений: 2141
А на скрипт можно глянуть?
17 мар 03, 13:02    [148952]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
Jimmy
Member

Откуда: г.Москва
Сообщений: 3136
Попробуй так:

SELECT ... FROM ... WHERE MyDate = {^ 2003-03-17 12:00}
17 мар 03, 13:52    [149027]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
Pestov
Member

Откуда:
Сообщений: 63
Скрип такой:
CREATE TABLE [mto_term] (

[key_term] int NOT NULL,
[key_out] decimal (15,0) NULL,
[key_inp] int NULL,
[key_cnt] int NULL,
[key_lttr] int NULL,
[date_1] smalldatetime NULL,
[date_2] smalldatetime NULL,
[period] char (15) NULL,
[cnt] decimal (15,3) NULL,
[prc] decimal (15,2) NULL,
[sum] decimal (15,2) NULL,
[sum_rest] decimal (15,5) NULL,
[prc_0] decimal (15,2) NULL,
[sum_0] decimal (15,2) NULL,
[sum_rest_0] decimal (15,5) NULL,
[d_insert] datetime NULL,
[u_insert] int NULL,
[d_update] datetime NULL,
[u_update] int NULL,
[deleted] bit NULL,
[workout] bit NULL,
[nds] decimal (6,2) NULL,
[number] int NULL,
[key_stg] int NULL,
[access] bit NULL,
[key_ansp] int NULL,
[cnt_c] decimal (15,3) NULL,
[prc_c] decimal (15,2) NULL,
[sum_c] decimal (15,2) NULL,
[sum_rest_c] decimal (15,5) NULL,
[date_1_c] smalldatetime NULL,
[date_2_c] smalldatetime NULL,
[period_c] char (15) NULL,
[d_import] datetime NULL,
[d_export] datetime NULL,
[cnt_e] decimal (15,3) NULL,
[sum_e] decimal (15,2) NULL,
[comment_e] char (100) NULL,
[inptax] decimal (5,2) NULL,
[outtax] decimal (5,2) NULL,
[tradetax] decimal (5,2) NULL,
[workout_st] smalldatetime NULL,
[workout_fn] smalldatetime NULL,
[tr_flag] bit NULL,
[rpl_flag] bit NULL,
[rpl_key_term] int NULL,
[remark] char (200) NULL,
[ext_flag] bit NULL,
[prc_0_tr] decimal (15,2) NULL )


Причем, при тесте Transformations ничего не орет, все тип топ, а орет на execute следующее: The number of failing rows exceeds the maximum specified.
Insert error, column 6 ('date_1', DBTYPE_DBTIMESTAMP), status 6: Data overflow.
Invalid character value for cast specification.
17 мар 03, 14:00    [149035]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
gringo
Member

Откуда: Nizny Novgorod
Сообщений: 76
Дата на SQL серваке лежат в нек. диапазоне, 1950...2050 гг., поэтому на другие и может ругатьтся, или на пустую дату (SQL не понимает пустых (не Null) дат)
17 мар 03, 14:05    [149041]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
NNN
Member

Откуда:
Сообщений: 2141
Я имел ввиlу как она к фоксу обращается. Может там можно подставить в запрос вместо date_1 - dtot(date_1) as date_1.
17 мар 03, 14:08    [149046]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
Pestov
Member

Откуда:
Сообщений: 63
в DTS указываю такой запрос в качестве сорса:
SELECT     key_term, key_out, key_inp, key_cnt, key_lttr, 


DTOT(date_1) AS date1,
DTOT(date_2) AS date2,

period, cnt, prc, `sum`, sum_rest, prc_0, sum_0, sum_rest_0,

d_insert, u_insert, u_update, d_update,

deleted, workout, nds, key_stg,
number, access, key_ansp, prc_c, cnt_c, sum_c, sum_rest_c,

DTOT(date_1_c) as date_1_c,
DTOT (date_2_c) as date_2_c,

period_c, d_import,
d_export, cnt_e, sum_e, comment_e, outtax, inptax, tradetax,

DTOT(workout_fn) AS workout_fn,
DTOT(workout_st) AS workout_st,

tr_flag, rpl_flag, rpl_key_term, remark, ext_flag, prc_0_tr
FROM mto_term


и в превью все показывает прекрасно, прекрасно генерит скрипт для destination, а при запуске орет на ту же ошибку...

ВАУ!!! Да блин в чем грабли???!!!
17 мар 03, 14:53    [149112]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
Jimmy
Member

Откуда: г.Москва
Сообщений: 3136
Извините, не понял сразу проблему.

Для того, чтобы MSSQL "понимал" дату можно пользоваться строковым типом, если дата представлена в ANSI формате (YYYYMMDD). В Фоксе такое преобразование делает функция DTOS( MyDate ).

Так что, если выполнить запрос SELECT DTOS(MyDate) AS MyDate ...., то все будет ОК.
17 мар 03, 15:00    [149130]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
Pestov
Member

Откуда:
Сообщений: 63
2Jimmy:
т.е при репликации дату писать в таблицу как строку, а потом уже в запросе использовать DTOT?
В фоксе я менять ничего не могу :-(((
17 мар 03, 15:04    [149145]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
NNN
Member

Откуда:
Сообщений: 2141
2Pestov

Jimmy имеет в виду, что после dtos даты будут перенесены нормально. А пустых дат у тебя точно нет?
17 мар 03, 15:15    [149166]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
Pestov
Member

Откуда:
Сообщений: 63
Блин, да что DTOS, что DTOT в сиквеле(source), толку никакого, в превью все прекрасно, но почему на insert'e то DTS' ка орет?
17 мар 03, 15:16    [149167]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
Pestov
Member

Откуда:
Сообщений: 63
Пустых точно нет...
17 мар 03, 15:16    [149169]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
Pestov
Member

Откуда:
Сообщений: 63
Я так понимаю, фокс после преобразования возвращает YYYYMMDD
а в SQL пихать надобно в формате DDMMYYYY?
17 мар 03, 15:23    [149177]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
Jimmy
Member

Откуда: г.Москва
Сообщений: 3136
https://www.sql.ru/faq/faq_topic.aspx?fid=109
17 мар 03, 15:42    [149210]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
MiCe
Member

Откуда: RUSSIA STAVROPOL Pyatigorsk
Сообщений: 1996
послушайте... вы о чем ребята...
у меня куча фоксовых таблиц, все крутится через линковый сервер, все поля даты правильно интерпритируются....
как прилинковал?
17 мар 03, 15:43    [149213]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server на FoxPro проблема с датами...  [new]
nik_nik
Member

Откуда: Республика Беларусь
Сообщений: 58
Проверь значения дат в Foxовской таблице.
Какая то дата неверна.
У меня такое было.
18 мар 03, 08:58    [149681]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить