С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
2 / 2 / 0
Регистрация: 04.06.2017
Сообщений: 35

Экспорт данных в DBF (перевод на Delphi)

31.08.2018, 10:46. Показов 1936. Ответов 3

Студворк — интернет-сервис помощи студентам
Добрый день! Перевожу программу в Delphi XE2 проблемма с экспортом данных в DBF базу. А конкретно - не грузятся 2 поля:
NKONTR и NKONTRV. После экспорта эти поля пустые в DBF, хотя в базе на FireBird в них есть данные. Не могу найти причину... помогите пожалуйста разобратся...


Delphi
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
with ADC_Zakaz_sh do
  begin
    Close;
    Parameters.ParamByName('nrzakaz').Value := IBQ_Zakaz.FieldValues['nrzakaz'];
    Parameters.ParamByName('ps').Value := IBQ_Zakaz.FieldValues['ps'];
    Parameters.ParamByName('nuser').Value := IBQ_Zakaz.FieldValues['nuser'];
    Parameters.ParamByName('dreg').Value := FormatDateTime('yyyyMMdd', DREG);
    Parameters.ParamByName('dcor').Value := FormatDateTime('yyyyMMdd', DKOR);
    Parameters.ParamByName('god').Value := IBQ_Zakaz.FieldValues['god'];
    Parameters.ParamByName('kstan').Value := IBQ_Zakaz.FieldValues['kstan'];
    Parameters.ParamByName('nzak').Value := IBQ_Zakaz.FieldValues['nzak'];
    Parameters.ParamByName('npozsh').Value := IBQ_Zakaz.FieldValues['npozsh'];
    Replace_Param(Parameters.ParamByName('vzak'), IBQ_Zakaz.FieldValues['vzak']);
    Parameters.ParamByName('dvzak').Value := FormatDateTime('yyyyMMdd', DVZAK);
    Replace_Param(Parameters.ParamByName('dzzak'), FormatDateTime('yyyyMMdd', DZZAK));
    Parameters.ParamByName('kpotr').Value := IBQ_Zakaz.FieldValues['kpotr'];
    Parameters.ParamByName('kplat').Value := IBQ_Zakaz.FieldValues['kplat'];
    Parameters.ParamByName('kmfo').Value := IBQ_Zakaz.FieldValues['kmfo'];
    Parameters.ParamByName('nschet').Value := copy(IBQ_Zakaz.FieldValues['nschet'],1,20);
    Parameters.ParamByName('kstran').Value := IBQ_Zakaz.FieldValues['kstran'];
    Parameters.ParamByName('kstranpl').Value := IBQ_Zakaz.FieldValues['kstranpl'];
    Parameters.ParamByName('gdkpotr').Value := IBQ_Zakaz.FieldValues['gdkpotr'];
    Parameters.ParamByName('kpvigr').Value := IBQ_Zakaz.FieldValues['kpvigr'];
    if (Trim(IBQ_Zakaz.FieldByName('nvet').AsString) <> '') then
      Parameters.ParamByName('nvet').Value := AnsiReplaceStr(AnsiReplaceStr(IBQ_Zakaz.FieldByName('nvet').asstring, #178, 'I'), #179, 'i')
    else
      Parameters.ParamByName('nvet').Value := ' ';
    Parameters.ParamByName('kprod').Value := IBQ_Zakaz.FieldValues['kprod'];
    Parameters.ParamByName('ndog').Value := IBQ_Zakaz.FieldValues['ndog'];
    Replace_Param(Parameters.ParamByName('nro'), IBQ_Zakaz.FieldValues['nro']);
    if (Trim(IBQ_Zakaz.FieldByName('klient').AsString) <> '') then
      Parameters.ParamByName('klient').Value := AnsiReplaceStr(AnsiReplaceStr(IBQ_Zakaz.FieldByName('klient').AsString, #178, 'I'), #179, 'i')
    else
      Parameters.ParamByName('klient').Value := ' ';
    Replace_Param(Parameters.ParamByName('nlot'), IBQ_Zakaz.FieldValues['nlot']);
    if (Trim(IBQ_Zakaz.FieldByName('nepotr').AsString) <> '') then
      Parameters.ParamByName('nepotr').Value := AnsiReplaceStr(AnsiReplaceStr(IBQ_Zakaz.FieldByName('nepotr').AsString, #178, 'I'), #179, 'i')
    else
      Parameters.ParamByName('nepotr').Value := ' ';
    Replace_Param(Parameters.ParamByName('nkontr'), IBQ_Zakaz.FieldValues['nkontr']);
    Replace_Param(Parameters.ParamByName('dvkontr'), FormatDateTime('yyyyMMdd', DVKONTRP));
    if (Trim(IBQ_Zakaz.FieldByName('nepol').AsString) <> '') then
      ADC_Zakaz_sh.Parameters.ParamByName('nepol').Value := AnsiReplaceStr(AnsiReplaceStr(IBQ_Zakaz.FieldByName('nepol').AsString, #178, 'I'), #179, 'i')
    else
      Parameters.ParamByName('nepol').Value := ' ';
    Replace_Param(Parameters.ParamByName('kontrder'), IBQ_Zakaz.FieldValues['kontrder']);
    Replace_Param(Parameters.ParamByName('nkontrv'), IBQ_Zakaz.FieldValues['nkontrv']);
 
    if (Trim(IBQ_SPRED.FieldByName('deliv_adr').AsString) <> '') then
       ADC_Zakaz_sh.Parameters.ParamByName('delivadr').Value := copy(IBQ_SPRED.FieldByName('deliv_adr').AsString,1,250)
    else
      Parameters.ParamByName('delivadr').Value := ' ';
 
    Execute;
  end;
end;
 
procedure TFZAGR.FormActivate(Sender: TObject);
begin
  Label2.Caption := '';
  DT_DateStart.Date := Now;
  DT_DateEnd.Date := Now;
  with ADC_Zakaz_sh do
  begin
    Close;
    CommandText := 'insert into ZAKAZ_SH (nrzakaz, ps,'+
      'nuser, dreg, dcor, god, kstan, nzak,' +
      'npozsh, vzak, dvzak, dzzak, kpotr, kplat, kmfo, nschet, kstran,' +
      'kstranpl, gdkpotr, kpvigr, nvet, kprod, ndog, nro, klient, nlot, nepotr, ' +
      'nkontr, dvkontr, nepol, kontrder, nkontrv, delivadr) ' +
      'values(:nrzakaz, :ps, ' +
      ':nuser, :dreg, :dcor, :god, :kstan, :nzak,'+
      ':npozsh, :vzak, :dvzak, :dzzak, :kpotr, :kplat, :kmfo, :nschet, :kstran,'+
      ':kstranpl, :gdkpotr, :kpvigr, :nvet, :kprod, :ndog, :nro, :klient, :nlot,:nepotr, ' +
      ':nkontr, :dvkontr, :nepol, :kontrder, :nkontrv, :delivadr)';
  end;

Процедура Replace_Param:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TFZAGR.Replace_Param(Cmd: TParameter; Val: Variant);
begin
  case VarType(Val) of
    //Вместо пустых строк - подставляем пробел
    varString:
      if Trim(VarToStr(Val)) = '' then
        Cmd.Value := ' '
      else
        Cmd.Value := Val;
    //Вместо 01.01.1900 подставляем Null
    varDate:
      if Trim(VarToStr(Val)) = '01.01.1900' then
        Cmd.Value := Null
      else
        Cmd.Value := Val;
  end;
end;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.08.2018, 10:46
Ответы с готовыми решениями:

Экспорт данных в формат dbf
Требуется данные с SQL SERVERA записать в таблицы формата dbf. Причем сделать это программно. Заранее спасибо.

Экспорт данных из dbf в таблицу ms sql
Доброго времени суток, подскажите пожалуйста как можно реализовать программу, которая бы из таблицы формата dbf (создана в Visual foxpro)...

Экспорт данных из Delphi в Word
Подскажите пожалуйста где можно почитать материалы на тему экспорта данных из Delphi в Word

3
5957 / 4533 / 1094
Регистрация: 29.08.2013
Сообщений: 28,130
Записей в блоге: 3
31.08.2018, 21:16
зачем кому то использовать dbf в 2018 году?
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
03.09.2018, 06:29
Цитата Сообщение от qwertehok Посмотреть сообщение
зачем кому то использовать dbf в 2018 году?
Например если есть ПО еще на клипере написанное.

Добавлено через 5 минут
Цитата Сообщение от SaneK_UA Посмотреть сообщение
После экспорта эти поля пустые в DBF, хотя в базе на FireBird в них есть данные.
1. Убедится, что они есть не только в БД, но и наборе данных проги полученного в результате SQL запроса.
2. Посмотреть какое значение хранить параметр.
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
05.09.2018, 21:02
Попробуйте для проблемных полей использовать явное указание типа поля. Вместо IBQ_Zakaz.FieldValues['nkontr'] напишите IBQ_Zakaz.FieldByName('nkontr').AsString
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.09.2018, 21:02
Помогаю со студенческими работами здесь

Экспорт данных из Delphi в Excel
Здравствуйте! :)Пожалуйста помогите мне в решении одной задачи. Суть состоит в том, что необходимо экспортировать данные из таблицы,...

Экспорт данных из DBGrid в Excel Delphi
Программа на кнопку работает.Данные выводиться в Excel.Но не выводит название столбцов. var i,j,index: Integer; ExcelApp,sheet:...

Экспорт массива данных из Excel в Delphi
Есть массив данных в excel. Зависимость давления от времени. И надо переделать этот массив так, чтобы были известны значения давления через...

Delphi 7 access экспорт данных толка строк в excel ?
Всем доброго, дня суток Создал Базу данных на Delphi 7 , Access некого предприятие тема моего дипломной работы проблема в чем: ...

Экспорт в формат dbf
Здравствуйте! С сервером MS SQL EXPRESS 2008 работаю впервые. Да и вообще, с этой СУБД. Интересует, как вывести таблицу базы данных в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru