![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBF
Annet © (2005-09-16 08:16:00)Подскажите пожалуйста, как скинуть в dbf - файл данные в правильном формате (ну там поля разных типов и длин) из Delphi6.Ну никак не получается :-(
Annet (2005-09-16 13:50:00) [21]Удалено модератором
Annet (2005-09-16 13:50:00) [22]Нет. несоответствия содержимого точно нет. Там все правильно
А вот насчет DTS и dbase я не знаю. Что это за пакет и как им пользлваться? Или где по ним хелп почитать можно русский какой-нидь?
Только ведь дело в том, что задача конкретно поставлена! Dbf4, конкретные поля и точка :-(
Max Zyuzin (2005-09-16 13:33:00) [23]>Annet © (16.09.05 08:16)
Я извиняюсь за свою шутку. и присоединяюсь к Anatoly Podgoretsky © (16.09.05 13:20) [9]. Для чего использовать Excel если можно сразу перегонять в нужный тебе формат?
Anatoly Podgoretsky (2005-09-16 13:20:00) [24]Annet © (16.09.05 12:47) [7]
Вопрос - ты задала жестко тип полей в Экселе, если нет то Эксель будет определять тип по содержимому. И задание типа не снимает проблемы с несответсвием содержимого.
Ну и программу надо так написать, чтобы не зависить от типов и размеров полей. Учитываем все таки, что Эксельн это не СУБД.
Потом можно подумать, а зачем нужен Эксель, не проще ли с помощью DTS сразу получать dBase таблицу должного формата и содержания. Может потом ее немного подработать в Дельфи, если полностью нужное достигнуть не удается.
Annet (2005-09-16 12:52:00) [25]И еще одно. В SQL все типы - какие и должны быть а то ли Delphi, то ли Excel все искажает...
Annet (2005-09-16 12:47:00) [26]Неправильным результат я считаю потому, что когда я открываю полученную таблицу с помощью программы DBFDesk, вижу форматы полей. Так, когда мне нужен столбец типа Character(4) получается Numeric(9), вместо Character(12) - Character(9), Date(8) - Character(14) , Numeric(2) - Numeric(9)/ Тут еще фишка в том, что все эти данные я сперва получаю из SQL Server'a 2000: ADOQuery1.SQL.Add('select ...'); затем идет код типа:
ExcelApp.Connect;
WorkBK:=ExcelApp.Workbooks.Item[1];
WorkSheet:=WorkBK.Worksheets.get_item(1) as _worksheet;
IRange := WorkSheet.UsedRange[0];
while not ADOQuery1.Eof do
begin
workSheet.Cells.Item[i,1].value:='Servlognum';
workSheet.Cells.Item[i,2].value:='callednum';
...............
ADOQuery1.Next; i:=i+1;
end
Потом Excel сам спрашивает: "Сохраняем?" я говорю сохраняем, ручками задаю имя файла и формат dbf4, смотрю DBFDesk'ом и вижу не совсем тот результат......
Anatoly Podgoretsky (2005-09-16 12:30:00) [27]Почему думаешь, что не те?
Этому нужно подтверждение, я тоже пользуюсь иногда Экселем, подобного рода претензий у меня нет.
Аня, надеюсь имя не исказил? Для получения помощи надо более подробно описывать проблему, с указанием всех необходимых потребностей, иначе толку не будет, максимум чего можно добиться, так это насмешек и намеков кое на что.
Ты приведи исходные данные, порядок сохранения и полученый результат, а также соображения почему ты считаешь это неправильным.
Annet (2005-09-16 12:08:00) [28]*.dbf - это DBase IV (сохранение из Еxcel). Просто так я копирую туда данные все видно и все ОК, но если их посмотреть хотя бы тем же DBFDesk'ом, то типы и длины полей не те. А файл передается на обработку дальше и нужен конкретный формат. Как с этим воевать?
Anatoly Podgoretsky (2005-09-16 10:44:00) [29]Annet © (16.09.05 08:16)
Что такое dbf?
alex_*** (2005-09-16 09:13:00) [30]Copy+Paste ;)
Max Zyuzin (2005-09-16 09:10:00) [31]Надо забраться повыше, взять в руки побольше данных, и как только внизу появится dbf-файл метнуть в него все что у тебя в руках :-)
alex_*** (2005-09-16 09:01:00) [32]через ADO или ком. прямого доступа напр. TVKDBF. В чем конкр. проблема?