Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2009, 19:11   #31
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

vovk, спасибо большое! Запись добавилась. Как только смогу, то добавлю Вам отзыв. Пока не разрешает форум это сделать. Всем спасибо за помощь.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.10.2009, 18:36   #32
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Восклицание

Возникла такая проблема при вставке в большое количествл полей. Использую такой код:
Код:
procedure TForm2.sBitBtn1Click(Sender: TObject);
begin
 Form2.pFIBQuery1.SQL.Clear;
 Form2.pFIBQuery1.SQL.Text:='INSERT INTO SPISOK(ID,'+
                                               'FAMILIY,'+
                                               'IMY,'+
                                               'OTCHEST,'+
                                               'POL,'+
                                               'MESTOROGD,'+
                                               'FIOOTCA,'+
                                               'FIOMATERI,'+
                                               'NACIONALNOST,'+
                                               'LETSAD,'+
                                               'OTKUDAVIBYL,'+
                                               'KUDAPERESHOL,'+
                                               'ADRESPRIPOST,'+
                                               'RODILSYGOD,'+
                                               'RODILSYMESYC,'+
                                               'RODILSYDEN,'+
                                               'PSIHOLOG,'+
                                               'SOCIOLOG,'+
                                               'PEDSOVET,'+
                                               'HEALTHGROUP,'+
                                               'FIZGROUP,'+
                                               'RECOMENDACII,'+
                                               'KL) ' +
                            'VALUES(null,:FAM,:IM,:OTCH,:PO,:MR,:FO,:FM,:NAC,'+
                                    ':LS,:OV,:KP,:APP,:RG,:RM,:RD,:PSIH,:SOC,'+
                                    ':PS,:HG,:R,:K)';
 Form2.pFIBQuery1.ParamByName('FAM').Value:=Form2.sEdit1.Text;
 Form2.pFIBQuery1.ParamByName('IM').Value:=Form2.sEdit2.Text;
 Form2.pFIBQuery1.ParamByName('OTCH').Value:=Form2.sEdit3.Text;
 if Form2.sRadioButton1.Checked = True then
   Form2.pFIBQuery1.ParamByName('PO').Value:=Form2.sRadioButton1.Caption;
 if Form2.sRadioButton2.Checked = True then
   Form2.pFIBQuery1.ParamByName('PO').Value:=Form2.sRadioButton2.Caption; 
 Form2.pFIBQuery1.ParamByName('MR').Value:=Form2.sMemo1.Text;
 Form2.pFIBQuery1.ParamByName('FO').Value:=Form2.sMemo2.Text;
 Form2.pFIBQuery1.ParamByName('FM').Value:=Form2.sMemo3.Text;
 Form2.pFIBQuery1.ParamByName('NAC').Value:=Form2.sEdit6.Text;
 Form2.pFIBQuery1.ParamByName('LS').Value:=Form2.sEdit7.Text;
 Form2.pFIBQuery1.ParamByName('OV').Value:=Form2.sMemo4.Text;
 Form2.pFIBQuery1.ParamByName('KP').Value:=Form2.sMemo5.Text;
 Form2.pFIBQuery1.ParamByName('APP').Value:=Form2.sMemo6.Text;
 Form2.pFIBQuery1.ParamByName('RG').Value:=Form2.sEdit4.Text;
 Form2.pFIBQuery1.ParamByName('RM').Value:=Form2.sComboBox1.Text;
 Form2.pFIBQuery1.ParamByName('RD').Value:=Form2.sEdit5.Text;
 Form2.pFIBQuery1.ParamByName('PSIH').Value:=Form2.sMemo7.Text;
 Form2.pFIBQuery1.ParamByName('SOC').Value:=Form2.sMemo8.Text;
 Form2.pFIBQuery1.ParamByName('PS').Value:=Form2.sMemo9.Text;
 Form2.pFIBQuery1.ParamByName('HG').Value:=Form2.sComboBox2.Text;
 Form2.pFIBQuery1.ParamByName('R').Value:=Form2.sMemo10.Text;
 Form2.pFIBQuery1.ParamByName('K').Value:=Form2.sWebLabel2.Caption;

 Form2.pFIBQuery1.ExecQuery;

 Form2.pFIBDataSet1.Close;
 Form2.pFIBDataSet1.Open;
end;
Но выдается ошибка как во вложении. Что это значит? Что это за ошибка?
Изображения
Тип файла: bmp 111.bmp (277.2 Кб, 121 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.10.2009, 19:07   #33
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

кол-во объявленных полей вставки не соответствует кол-ву значений
конкретно у тебя нет значений для поля FIZGROUP
soleil@mmc вне форума Ответить с цитированием
Старый 16.10.2009, 19:24   #34
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
soleil@mmc
, респект! Огромное спасибо. Точно, поля не досчитался я. Я Ваш должник
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 23.10.2009, 11:20   #35
DariaPolka
Заблокирован
 
Регистрация: 19.10.2009
Сообщений: 3
По умолчанию Firebird pFIBQuery Вставка записи

Все ваши проблемы решаются установкой, оффициального firebird сервера.
По крайней мере я себе так исправил, но у меня другая ошибка:
не удаётся найти указанный файл, хотя файл лежит там где надо, 5 день бьюсь, помогите
DariaPolka вне форума Ответить с цитированием
Старый 26.12.2009, 09:23   #36
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Таким кодом вставляю запись из трех StringGrid-ов (SG1,SG2,SG3) в БД:
Код:
procedure TForm13.sBitBtn1Click(Sender: TObject);
var
 i,j:integer;
begin
 i:=1;
 j:=1;

 Form13.pFIBQuery_vstavka.SQL.Clear;
 Form13.pFIBQuery_vstavka.SQL.Text:='INSERT INTO REZULT(ID,IDINFO,IDPREDMET,IDCHEVERT,DVOEK,TROEK,CHETVEROK,PYTEROK,KO,SB,KY,Y,O,CHO,PROPUSKI) VALUES(null,:INFO,:IP,:ICH,:DV,:TR,:CH,:PYT,:K1,:S,:K2,:Y,:O1,:C,:P)';

 Form13.pFIBQuery_vstavka.ParamByName('INFO').Value:=Form1.SG1.Cells[4,i];

 Form13.pFIBQuery_vstavka.ParamByName('IP').Value:=Form18.sLabel8.Caption;
 Form13.pFIBQuery_vstavka.ParamByName('ICH').Value:=Form18.sLabel7.Caption;

 Form13.pFIBQuery_vstavka.ParamByName('K1').Value:=Form1.SG3.Cells[0,i];
 Form13.pFIBQuery_vstavka.ParamByName('S').Value:=Form1.SG3.Cells[1,i];
 Form13.pFIBQuery_vstavka.ParamByName('K2').Value:=Form1.SG3.Cells[2,i];
 Form13.pFIBQuery_vstavka.ParamByName('Y').Value:=Form1.SG3.Cells[3,i];
 Form13.pFIBQuery_vstavka.ParamByName('O1').Value:=Form1.SG3.Cells[4,i];
 Form13.pFIBQuery_vstavka.ParamByName('C').Value:=Form1.SG3.Cells[5,i];

 Form13.pFIBQuery_vstavka.ParamByName('DV').Value:=Form1.SG2.Cells[0,j];
 Form13.pFIBQuery_vstavka.ParamByName('TR').Value:=Form1.SG2.Cells[1,j];
 Form13.pFIBQuery_vstavka.ParamByName('CH').Value:=Form1.SG2.Cells[2,j];
 Form13.pFIBQuery_vstavka.ParamByName('PYT').Value:=Form1.SG2.Cells[3,j];
 Form13.pFIBQuery_vstavka.ParamByName('P').Value:=Form1.SG2.Cells[4,j];

 Inc(i);
 Inc(j);
 Form13.pFIBQuery_vstavka.ExecQuery;
end;
Вопрос вот в чем: что нужно добавить, чтобы заносились все записи из трех таблиц? Знаю, что не хватает чего-то. Может быть цикла проверки на пустоту, может быть цикла. Такой ситуации, что в одной таблице есть запись, а в других соответствующей ей нет не будет. количество записей во всех таблицах будет равным. Этот код вставляет только первую запись.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 26.12.2009, 11:13   #37
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Артём, ну сразу же можно сказать, что у Вас НЕТ цикла. т.е. переменные Вы нарастили, а цикла нет...
Но подробнее нельзя ничего сказать из-за:
Цитата:
ситуации, что в одной таблице есть запись, а в других соответствующей ей нет не будет
поподробнее, что есть, чего нет... нарисуйте пример..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.12.2009, 12:41   #38
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

если во всех стринггридах одинаковое число строк, то оберни все это в один цикл по кол-ву строк (пропертя может и по-другому называться - посмотри в св-вах стринггрида)
Код:
for i:=1 to Form1.SG1.RowCount-1 do begin
...
end;
это ваще убери
Код:
 i:=1;
 j:=1;

 Inc(i);
 Inc(j);
и замени в коде все J на i (ваще неясно для чего тебе там 2 счетчика)
soleil@mmc вне форума Ответить с цитированием
Старый 26.12.2009, 12:59   #39
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
если во всех стринггридах одинаковое число строк
я так понял, что НЕ ОДИНАКОВОЕ число...
и в этом корень проблемы.. (и как раз для этого разные счётчики для разных гридов)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.12.2009, 13:29   #40
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

мне придумывать незачем
кагбэ ТС сам пояснил
Цитата:
Сообщение от artemavd Посмотреть сообщение
Такой ситуации, что в одной таблице есть запись, а в других соответствующей ей нет не будет. количество записей во всех таблицах будет равным. Этот код вставляет только первую запись.
soleil@mmc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FireBird Д'якон БД в Delphi 2 04.12.2008 11:15
FireBird 1.5.4 Nikola__ БД в Delphi 2 17.11.2008 14:42
Как получить ID для новой записи с использованием триггеров?(Firebird) Paul Hindenburg БД в Delphi 20 01.06.2008 16:39
Вставка записи в поле графического типа Bibigul БД в Delphi 3 10.04.2007 16:07