Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 5

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).


 
Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].


    Некоторые "родственные" топики:
     
  • Вопросы по Delphi (версии 2009-2010 Weaver)
  • Вопросы по компонентам для Delphi, C++ Builder
  • Использование DevExpress
  • Вопросы по Ehlib
  • Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus - только Open Source
  • Коммерческие компоненты и утилиты для Delphi/BCB
  • кабак программистов :)
     
    См. также: Некоторые полезные ресурсы о Delphi
     
    И старайтесь, чтобы ваш код не попал сюда :)

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: akaGM, 02:33 15-07-2020
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
     
    В этой колонке ставятся флажки, если другие колонки имеют значение NULL. Каждый бит соответствует своей колонке.
    есть шанс что при откывании файла будет ошибка тогда
    Нужно послать команду "SET NULL OFF"  

    Цитата:
    Если клиент в 1С загружает dbf файлы (версию не знаю) этот пример подойдет?  

    а самому попробовать?
    я понятие не имею - с 1с не работаю.
    ЕЩЕ раз спрашиваю что бы узнать чей файл(формат) dbf у вас : чему равен первый байт в dbf файле?

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 16:53 24-09-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc

    Цитата:
    чей файл(формат) dbf у вас

    их 48 (30 в шестнадцатеричной), то что я формирую хальконом 03.
     
    ДБФ грузят в 1С (версия 8.1), дальше 1С данные переписывает на сервер. И так как вместо null значений стоит 0, данные где стоит 0 не переписываются.
     

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 17:23 24-09-2010 | Исправлено: Man_Without_Face, 17:37 24-09-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
     то что я формирую хальконом 03.

    это 0x03   FoxBASE+/Dbase III plus, no memo
    в этом формате нету поля DateTime только Date.
    В моем примере (где Tadocommand) как раз формируется нужная Вам таблица 0x30   Visual FoxPro

    Цитата:
    И так как вместо null значений стоит 0, данные где стоит 0 не переписываются
    вот это я не понял - кем не переписываются?

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 08:29 27-09-2010 | Исправлено: greenpc, 08:33 27-09-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc
     

    Цитата:
    вот это я не понял - кем не переписываются?

    1C'сом не переписываются. Я толком не знаю, мне как передали так и написал. Хотят null значения и все тут.
     
    И если не сложно пример записи значений в Tadocommand. Спасибо.
     
     
    Добавлено:
    greenpc
    При выполнении выдает ошибку:
    "Произошла одна или несколько ошибок во время обработки команды"
     
    Если эту строчку закоментить, то все нормально:
    cmd1.CommandText := 'COPY TO test.dbf AS 866';
     
    И как добавить поддержку null значений?
     
     

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 10:27 27-09-2010 | Исправлено: Man_Without_Face, 12:28 27-09-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face

    Цитата:
    пример записи значений в Tadocommand

    см. комнду insert в sql

    Цитата:
    При выполнении выдает ошибку:  

    достаточно этого
    cmd1.CommandText := 'execscript ([CREATE DBF Test.dbf codepage=866 (FILIAL I null, DATE D, VAL Ca(3) Null, WDT T)])';

    Цитата:
    Хотят null значения и все тут

    готовый файл покажите?

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 12:48 27-09-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    готовый файл покажите?

    В присланном мне файле стоят 0, но нужно null.
     

    Цитата:
    cmd1.CommandText := 'execscript ([CREATE DBF Test.dbf codepage=866 (FILIAL I null, DATE D, VAL Ca(3) Null, WDT T)])';

    Если заменяю на это, то при открытии файла пишет: Не удается открыть файл.
     
    Вот так работает:
     
      cmd1.ConnectionString := 'Provider=VFPOLEDB.1;Data Source=D:\;Password="";Collating Sequence=RUSSIAN';
      cmd1.CommandText := 'CREATE DBF Test.dbf (FILIAL N(7,0) null, DATE D, VAL Ca(3), WDT T)';
      cmd1.Execute;
      cmd1.CommandText := 'INSERT INTO Test.dbf (FILIAL, VAL) VALUES (null, ''fff'')';
      cmd1.Execute;
     
    но вместо null записывается 0.

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 13:57 27-09-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face

    Код:
      cmd1.ConnectionString := 'Provider=VFPOLEDB.1;Data Source=D:\;Password="";Collating Sequence=RUSSIAN';
      cmd1.CommandText := 'CREATE DBF Test.dbf codepage=866 (FILIAL N(7,0) null, DATE D, VAL Ca(3), WDT T)';
      cmd1.Execute;
      cmd1.CommandText := 'INSERT INTO Test.dbf (FILIAL, VAL) VALUES (null, ''fff'')';
      cmd1.Execute;
     
        with qry1 do
        begin
          Close;
          ConnectionString := 'Provider=VFPOLEDB.1;Data Source=D:\;Password="";Collating Sequence=RUSSIAN';
          SQL.Text := 'select * from Test.dbf where FILIAL is null';
          Open;
          ShowMessage('Null record='+IntToStr(RecordCount));
        end;
        with qry1 do
        begin
          Close;
          ConnectionString := 'Provider=VFPOLEDB.1;Data Source=D:\;Password="";Collating Sequence=RUSSIAN';
          SQL.Text := 'select * from Test.dbf where FILIAL=0';
          Open;
          ShowMessage('FILIAL=0 record='+IntToStr(RecordCount));
        end;
     
    где qry1 - TADOQuery

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 15:37 27-09-2010 | Исправлено: greenpc, 15:39 27-09-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc Спасибо.
    Выше написанный код вызвает ошибку: 'Cannot open file d:\test.dbf'
     
    Но я так понимаю это DBFNavigator так показывает (0 вместо '').  
     
    Еще не понимаю почему дату не записывает (Data type mismatch):
    VALUES (NULL, ''fff'', ''05.10.2010'')';

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 15:38 27-09-2010 | Исправлено: Man_Without_Face, 15:59 27-09-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face

    Цитата:
    Еще не понимаю почему дату не записывает (Data type mismatch):  


    Код:
    cmd1.CommandText := 'INSERT INTO Test.dbf (FILIAL, VAL, DATE) VALUES (null, ''fff'', {^1994-02-16})';

    да я так понял null фишка навигатора

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 15:59 27-09-2010 | Исправлено: greenpc, 16:00 27-09-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc Спасибо
     

    Цитата:
    {^1994-02-16}

    Мне тут подсказывают это какое то старое представление, но никто не знает как дату+время в таком виде записать?

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 16:08 27-09-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face

    Код:
      cmd1.CommandText := 'INSERT INTO Test.dbf (FILIAL, VAL, DATE,WDT) VALUES (null, ''fff'', DateTime(2010,04,15,0,0,0), DateTime(1994,04,15,10,55,12))';

    PS: RTFM по Visual FoxPro

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 16:16 27-09-2010 | Исправлено: greenpc, 16:32 27-09-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc
    Отправил заказчику тестовый exe. У меня все работает, у него Syntax Error. Запустил с другого компьютера (Delphi не стоит) - "Не удается найти указанного поставщика. Вероятно он установлен неправильно". Я так понимаю это из за этого: Microsoft Visual FoxPro OLE DB Provider. Пробовал в корневой каталог с программой скинуть файл vfpoledb.msm (был там же где и качал Microsoft Visual FoxPro OLE DB Provider) - та же самая ошибка. Можно ли это как нибудь исправить не устанавливая Microsoft Visual FoxPro OLE DB Provider?

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 17:10 27-09-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
    в данном контексте, IMHO, нет. halcon, apollo не понимают формат Visual FoxPro.

    Цитата:
    Пробовал в корневой каталог с программой скинуть файл vfpoledb.msm (был там же где и качал Microsoft Visual FoxPro OLE DB Provider) - та же самая ошибка.
     
    вы хоть поняли, что сделали? думаю - нет. решение- создать исталятор и запихнуть туда msm или вытащить dll и зарегистрировать в системе.
    Цитата:
    Можно ли это как нибудь исправить не устанавливая...  
    ваша проблема в поле дата-время. это и есть ответ на вопрос. оставляйте только дату или создавайте поле float.

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 08:49 28-09-2010
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
    вроде TDbf понимает формат Visual FoxPro

    Добавлено:
    извиняюсь, уже советовали

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 14:43 28-09-2010 | Исправлено: smirnvlad, 14:47 28-09-2010
    Bonivur



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите, как реализовать следующее... Нужен trackbar который бы менял громкость SW Synth (Синтезатор) в системном Микшере (системный файл sndvol32.exe). То есть менял бы громкость MIDI.  

    ----------
    Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 11:20 06-10-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bonivur
    _http://msdn.microsoft.com/en-us/library/aa908146.aspx
    дальше надо?
    _http://msdn.microsoft.com/en-us/library/dd798480(VS.85).aspx

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 11:49 06-10-2010 | Исправлено: greenpc, 11:53 06-10-2010
    Bonivur



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    greenpc
    спасибо, но...

    Цитата:
    Minimum supported client    Windows 2000 Professional

    к тому же внизу страницы _http://msdn.microsoft.com/en-us/library/dd798480(VS.85).aspx почитай, пишут что под Win7 и Vista не регулирует громкость именно MIDI, а только общую громкость (Master Volume).

    ----------
    Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 14:43 06-10-2010 | Исправлено: Bonivur, 14:46 06-10-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bonivur
    тогда в помошь миксер
    unit MMSystem

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 15:07 06-10-2010
    Arberes

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
    Возникла непонятная проблема. Понадобилось установить 2007-ую Делфи на один компьютер. Взял проверенный дистрибутив (2007 v11.0.2902.10471), запускаю установку от имени админа (обычно там работают из-под пользователя), но получаю не совсем то, что хотел. Например, вот скрин окна выбора компонентов при установке

    Устанавливаются только они, больше ничего нет.
     
    Удалил всё, связанное с Codegear, из Program Files, Application Data и реестра, но всё равно такая же фигня. Кто-нибудь может подсказать, в чём проблема и как решить?

    Всего записей: 44 | Зарегистр. 31-10-2005 | Отправлено: 15:12 07-10-2010
    Andryshok



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Arberes Насколько я понимаю, дело в том что за файлик вызапускаете для установки
    Посмтрите файл autorun.inf находящийся в корне директории дистрибутива, там считывается информация о конфигурации, например вот  
    [AutoRun]
    open=Install_RADStudio.exe
    icon=delphi.ico, 0
     
    [CONFIG]
    SKU=RADSTUDIO

    Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 11:07 08-10-2010
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru