Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84

Delphi и Paradox

06.02.2012, 13:42. Показов 2683. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. У меня такой вопрос, я работаю с БД Paradox. Извлекаю я данные таким оброзом
Delphi
1
2
3
4
5
6
Form9.Query3.DatabaseName:=Path;
Form9.Query3.SQL.Clear;
         Form9.Query3.SQL.Add('SELECT idate, ind, ur8 from giraz1.DB  where (mes between ''1'' and ''12'')'+
         ' and (den between ''1'' and ''31'') and ind in ('''+inds1+''')'+
         ' and (idate between '''+idate2+''' and '''+idate1+''') order by ind, idate');
         Form9.Query3.Active:=True;
Здесь все отлично, а как мне добавить новые или изменить существующие данные, с запросом все понятно, но какой компонент это позволит сделать????
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2012, 13:42
Ответы с готовыми решениями:

Delphi и Paradox
Имеется таблица Paradox на комп1. Как мне на комп2 по IP подключиться сначало к комп1, а потом к таблице???

Paradox & Delphi
Для работы с базой Paradox используются компоненты Table, DataSource, DBNavigator. Через DBNavigator все корректно добавляет, а надо...

Создание БД в Delphi (DATABASE, PARADOX 7)
Здравствуйте. очень нужна ваша помощь. сейчас бьюсь над базами данных, и ничего в них не смыслю. задача такова: Создать БД на 15...

21
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
06.02.2012, 13:45
Цитата Сообщение от Tasha*
как мне добавить новые или изменить существующие данные
Почитать про SQL и выяснить, что кроме SELECT там есть еще масса конструкций, в частности INSERT и UPDATE
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
06.02.2012, 13:52  [ТС]
Да это я прекрасно знаю, говорю же проблема не в запросе, а в компонентах delphi позволяющих это сделать

Добавлено через 3 минуты
SQL
1
2
'Update giraz1.DB set ur8='''+dan+''' '+
           'where ind='+stan+' and idate=cdate('''+dt+''')'
SQL
1
2
'insert into giraz1.DB (ind, idate, ur8) '+
           'values ('+stan+', '''+dt+''', '''+dan+''')'
куда их вставить????
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
06.02.2012, 14:15
Цитата Сообщение от Tasha*
в компонентах delphi позволяющих это сделать
Зависит от набора используемых компонент. В некоторых можно использовать то же Query, только вместо Query.Active:= true или Query.Open использовать что-то вроде Query.ExecSQL.
В некоторых используется что-то типа CommandSQL или UpdateSQL.
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
06.02.2012, 16:34  [ТС]
допустим я пишу
Delphi
1
2
3
Form9.UpdateSQL1.ModifySQL.Clear;
           Form9.UpdateSQL1.ModifySQL.Add('Update giraz1.DB set ur8='''+dan+''' '+
           'where ind='+stan+' and idate=cdate('''+dt+''')');
как это выполнить?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
06.02.2012, 16:49
Delphi Help

TUpdateSQL - Methods - InTUpdateSQL

ExecSQL
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
06.02.2012, 17:22  [ТС]
А если делать это через Query, я выставляю RequestLive = True
потом пишу
Delphi
1
2
3
4
Form9.Query3.SQL.Clear;
Form9.Query3.SQL.Add('Update giraz1.DB set ur8='''+dan+''' '+
'where ind='+stan+' and idate=cdate('''+dt+''')');
Form9.Query3.ExecSQL;
ъ
не работает!!!! что не так???
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
06.02.2012, 17:37
Delphi
1
2
3
4
5
6
7
8
9
10
with Form9.Query3 do
  try 
   SQL.Text := 'Update giraz1.DB set ur8=:pur8 where (ind=:pind) and (idate=:pidate)';
   ParamByName('pur8').AsString := dan;
   ParamByName('pind').AsInteger := stan;
   ParamByName('pidate').AsDateTime := dt;
   ExecSQL;
  except
   ShowMessage('Типа ошибка !')
 end;
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
06.02.2012, 17:37  [ТС]
я нашла ошибку...)
должно быть так
Delphi
1
2
3
4
Form9.Query3.SQL.Clear;
Form9.Query3.SQL.Add('Update giraz1.DB set ur8='''+dan+''' '+
'where ind='+stan+' and idate='''+dt+'''');
Form9.Query3.ExecSQL;
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
07.02.2012, 11:09  [ТС]
Вот что я делаю
Delphi
1
2
3
4
Form9.Query1.SQL.Clear;
Form9.Query1.SQL.Add('insert into giraz1.DB (ind, ur8, idate) '+
'values ('+stan+', '''+dan+''', '''+dt+''')');
Form9.Query1.ExecSQL;
Подскажите еще, с чем может быть связана такая ошибка
Миниатюры
Delphi и Paradox  
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
07.02.2012, 11:13
Слет по дублировангию ключей. Вы ставляете запись с ключом, уже имеющимся в таблице.
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
07.02.2012, 12:16  [ТС]
еще кое что обнаружила:
Delphi
1
2
3
4
Form9.Query3.SQL.Clear;
Form9.Query3.SQL.Add('Update giraz1.DB set ur8='''+dan+''' '+
'where ind='+stan+' and idate='''+dt+'''');
Form9.Query3.ExecSQL;
это работает карявенько... в базе возникает новая запись и она является совершенно не корректной... вся база просто перестает работать

Добавлено через 4 минуты
почему вообще возникает новая запись???

Добавлено через 2 минуты
я ведь хочу изменить только одно значение, а не создавать запись
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
07.02.2012, 12:29
Вы кричите что у Вас болит живот, нога и горло, а показываете мизинец на левой руке. Код давайте весь или хотя бы ту часть, где вносятся изменения
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
07.02.2012, 13:38  [ТС]
ок
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
if Form6.StringGrid1.Visible=True then
     begin
        for i:=1 to Form6.StringGrid1.ColCount-1 do
        if Sg1.Rows[1].Objects[i]=TObject(1) then //проверка флага на внесение изменений в ячейку
        begin
        error := False;
        ShortDateFormat:='dd/mm/yyyy';
        dt:=Form6.StringGrid1.Cells[i, 0];
        stan:=copy(Form6.Label1.Caption, 1, 5);
           if Form9.Query3.Locate('idate; ind', VarArrayOf([dt1, stan]),[])  then error := True;
           if error then
           begin
           dan:=Form6.StringGrid1.Cells[i, 1];
           Form9.Query1.SQL.Clear;
           Form9.Query1.SQL.Add('Update giraz1.DB set ur8='''+dan+''' '+
           'where ind='+stan+' and idate='''+dt+'''');
           ShowMessage(Form9.Query1.SQL.Text);
           Form9.Query1.ExecSQL;
           Sg1.Rows[1].Objects[i]:=TObject(0);
           Form5.Button1.Click;
           end
           else
           begin
           dan:=Form6.StringGrid1.Cells[i, 1];
           Form9.Query1.SQL.Clear;
           Form9.Query1.SQL.Add('insert into giraz1.DB (ind, ur8, idate) '+
           'values ('+stan+', '''+dan+''', '''+dt+''')');
           Form9.Query1.ExecSQL;
           Sg1.Rows[1].Objects[i]:=TObject(0);
           Form5.Button1.Click;
           end;
        end;
     end;
Добавлено через 4 минуты
ну не знаю кто из нас двоих глючит: комп или я сегодня но сейчас update отработал... а вот insert неа
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
07.02.2012, 13:49  [ТС]
сама таблица БД выглядит так
Миниатюры
Delphi и Paradox   Delphi и Paradox   Delphi и Paradox  

0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
07.02.2012, 13:53  [ТС]
я так понимаю, что мне каким-то образом надо заполнять поле nomber, но как??? сильно не ругайтесь... с этим Paradox-ом я таких дел никогда не имела
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
07.02.2012, 14:01  [ТС]
сейчас insert делает такую гадость
Миниатюры
Delphi и Paradox  
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
07.02.2012, 16:11
Господи, зачем я попросил Вас опубликовать - вот не дай Бог увижу во сне - ведь не просеусь же
Э8:О !!!
Это же ужос !!!!
Зачем Вы пытаетесь работать с табличными данными БД через стрингриды ?
Кто Вам проектировал базу ? На фонарь его !
Что за калейдоскоп форм с милой манерой именовать все в стиле "Номер по-порядку", ввиду чего код превращается в огород, неполотый лет ндцать. По какой книжке Вы там научились "кодить" ? В топку ее !!!
Да, девушка, Вы уж извините, но лучше б Вы шили или там вязали

Добавлено через 1 минуту
не проснусь
0
4 / 4 / 0
Регистрация: 25.10.2011
Сообщений: 84
07.02.2012, 16:29  [ТС]
эта задача существует лет наддцать...и мне ее переписывать просто некогда...никто мне под нее время не отводит... да и заниматься ей мне не очень радостно... надо позволить через то что есть внести изменения в эту базу, и у меня не спрашивают насколько она корявая, да и кто ее создовал

Добавлено через 42 секунды
если можете помочь помогите, а ругать то что имею я и сама могу

Добавлено через 4 минуты
а избавиться от этого старья так быстро не выйдет, у нас приложения под нее работают еще на fortranе
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
07.02.2012, 17:49
Я бы, если честно, просто написал бы с нуля. Все.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2012, 17:49
Помогаю со студенческими работами здесь

Delphi+Database Desktop(Paradox 7)
как можно добавлять значения в поля без элемента DBNavigator?(если я БД создал в парадоске через датабейс, и использовал DataSource,DBTable...

О таблицах баз данных Paradox в Delphi 2.0
Хочу изменить структуру существующего table. Но он не сохраняется. Почему? Скриншоты прикрепил.

Данные из .db (paradox/bde Delphi)
Как импортировать в Лотус данные из .DB файла (paradox/bde delphi) или подключится к нему ? Или хотя б из .DBF, хотя лучше .DB .

Работа с Paradox в Delphi через ADO.
Добрый день. Я пишу приложения баз данных на Delphi, в данном случае с использованием локального Paradox. Сейчас появилась необходимость...

Проблемы с базами Paradox: [Microsoft][ODBC Paradox Driver] External table is not in the expected format.
Здравствуйте! Есть парадоксовская база данных aaa.db. Создаю подключение: oConn.Open 'Driver={Microsoft Paradox Driver (*.db )};'...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru