Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
41 / 39 / 7
Регистрация: 16.01.2012
Сообщений: 163

Ошибка при записи в массив Delphi из SQL Server

20.03.2013, 21:04. Показов 958. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, кто подскажет, где может быть косяк? Выдает ошибку в стиле ошибка по адресу....
Если использовать вариант с EOF, то пишет, что 1-й элемент не существует типа migft not и т.д., хотя если код поместить в представление, то все работает как надо, в ДБЛукапКомбобох все тоже тип топ

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var m:array of real;
i:integer;
temp:string;
begin
temp:=Quotedstr(Fosvoen.DBLookupComboboxEh1.text);
UDataModule.DS.HQ.SQL.Clear;
UDataModule.DS.HQ.SQL.Add('SELECT dbo.osvoenie.summ ');
UDataModule.DS.HQ.SQL.Add('FROM dbo.osvoenie INNER JOIN  ');
UDataModule.DS.HQ.SQL.Add(' dbo.stat_rashod ON dbo.osvoenie.id_osvoen = dbo.stat_rashod.id_osvoen   ');
UDataModule.DS.HQ.SQL.Add('WHERE (dbo.stat_rashod.naimenovanie_rashod) =  '+temp );
UDataModule.DS.HQ.Open;
UDataModule.DS.HQ.First;
  //i:=1;
   // while not UDataModule.DS.HQ.Eof do
    for i:=0 to UdataModule.DS.HQ.FieldCount-1 do
      begin
      m[i]:=UDataModule.DS.HQ.Fields[i].AsFloat;
     // inc(i);
      UDataModule.DS.HQ.Next;
      edit1.Text:=edit1.Text+' '+floattostr(m[i])   ----- Для себя проверить окошко
      end;
UDataModule.DS.HQ.SQL.Clear;
UDataModule.DS.HQ.Close;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2013, 21:04
Ответы с готовыми решениями:

Ошибка при добавлении записи в SQL Server 2012
Добрый день, уважаемые. Очень нужна ваша помощь. Подскажите, пожалуйста. Есть база данных SQL Server 2012. В ней таблица MARA и...

Ошибка при обращении к базе данных Delphi Berlin 10.1 + MS SQL Server 2012
Помогите разобраться. У меня был старый проект в Delphi (Berlin 10.1). Я его немножко изменил для других целей. Была, короче говоря,...

Ошибка записи в БД SQL Server
Есть клиент, который передает информацию на сервер. Сервер должен эту информацию записать в файл базы данных SQL Server. При записи выдает...

14
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
20.03.2013, 21:16
Размер массива за тебя кто будет устанавливать, Пушкин ?
0
41 / 39 / 7
Регистрация: 16.01.2012
Сообщений: 163
20.03.2013, 21:22  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
Размер массива за тебя кто будет устанавливать, Пушкин ?
Добавил размерность и все равно в тоже уперся
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
20.03.2013, 21:29
Цитата Сообщение от lazy g. Посмотреть сообщение
Добавил размерность
Прелюбопытно - и как же ты ее "добавил" ?
0
41 / 39 / 7
Регистрация: 16.01.2012
Сообщений: 163
20.03.2013, 21:31  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
Прелюбопытно - и как же ты ее "добавил" ?
да вбил просто в начале [1..5], там пока только 5 записей...
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
20.03.2013, 21:37
Цитата Сообщение от lazy g. Посмотреть сообщение
там пока только 5 записей
А сколько там полей - это тебе, видимо, по барабану.
0
41 / 39 / 7
Регистрация: 16.01.2012
Сообщений: 163
20.03.2013, 21:40  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
А сколько там полей - это тебе, видимо, по барабану.
там 1 столбец вообще получается, если представление сделать
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
20.03.2013, 21:51
Цитата Сообщение от lazy g. Посмотреть сообщение
там 1 столбец
Тогда накой шиш цикл

FOR i:=0 TO UdataModule.DS.HQ.FieldCount-1 do

если в НД всего одно поле ?

Это раз.

И накой шиш ты делаешь Next прямо в цикле по полям ?

Это два.

Если ты объявил размерность массива [1..5], то с какого перепугу при первой итерации цикла FOR i := 0 ты пытаешься обращаться к элементу массива с нулевым индексом ?

Это три .
0
41 / 39 / 7
Регистрация: 16.01.2012
Сообщений: 163
20.03.2013, 22:01  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
Тогда накой шиш цикл

FOR i:=0 TO UdataModule.DS.HQ.FieldCount-1 do

если в НД всего одно поле ?

Это раз.

И накой шиш ты делаешь Next прямо в цикле по полям ?

Это два.

Если ты объявил размерность массива [1..5], то с какого перепугу при первой итерации цикла FOR i := 0 ты пытаешься обращаться к элементу массива с нулевым индексом ?

Это три .

1.Цикл там закоментент "//" его там не пришить

2. на ноль тоже сразу поменял

3. переход к следующей тоже закоментил

Теперь что-то выдает, и в окошко пишет но все равно ругается на запись 1
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
20.03.2013, 22:08
То есть ты принципиально не желаешь привести актуальный на сей момент код со всеми "исправлениями" и дословный текст "ругани" ?

Ну тады прыгай с бубном.
0
41 / 39 / 7
Регистрация: 16.01.2012
Сообщений: 163
20.03.2013, 22:11  [ТС]
Истина где-то рядом

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var m:array[0..5] of real;
i:integer;
temp:string;
begin
temp:=Quotedstr(Fosvoen.DBLookupComboboxEh1.text);
UDataModule.DS.HQ.SQL.Clear;
UDataModule.DS.HQ.SQL.Add('SELECT dbo.osvoenie.summ ');
UDataModule.DS.HQ.SQL.Add('FROM dbo.osvoenie INNER JOIN  ');
UDataModule.DS.HQ.SQL.Add(' dbo.stat_rashod ON dbo.osvoenie.id_osvoen = dbo.stat_rashod.id_osvoen   ');
UDataModule.DS.HQ.SQL.Add('WHERE (dbo.stat_rashod.naimenovanie_rashod) =  '+temp );
UDataModule.DS.HQ.Open;
UDataModule.DS.HQ.First;
  i:=0;
   while not UDataModule.DS.HQ.Eof do
      begin
      m[i]:=UDataModule.DS.HQ.Fields[i].AsFloat;
     inc(i);
      edit1.Text:=edit1.Text+' '+floattostr(m[i])
      end;
UDataModule.DS.HQ.SQL.Clear;
UDataModule.DS.HQ.Close;
0
41 / 39 / 7
Регистрация: 16.01.2012
Сообщений: 163
20.03.2013, 22:14  [ТС]
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
20.03.2013, 22:19
Цитата Сообщение от lazy g. Посмотреть сообщение
m[i]:=UDataModule.DS.HQ.FIELDS[i].AsFloat;
Ты тыковку-то почеши на тему к какому полю ты обращаешься при , скажем, 2-й итерации цикла, т.е. при i = 1, если поле в НД одно-единственное и имеет индекс 0 в списке Fields[]
1
41 / 39 / 7
Регистрация: 16.01.2012
Сообщений: 163
20.03.2013, 22:24  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
Ты тыковку-то почеши на тему к какому полю ты обращаешься при , скажем, 2-й итерации цикла, т.е. при i = 1, если поле в НД одно-единственное и имеет индекс 0 в списке Fields[]

Delphi
1
2
3
4
5
6
7
8
9
10
11
UDataModule.DS.HQ.First;
  i:=0;
   while not UDataModule.DS.HQ.Eof do
      begin
      m[i]:=UDataModule.DS.HQ.Fields[0].AsFloat;
     inc(i);
      edit1.Text:=edit1.Text+' '+floattostr(m[i]);
      UDataModule.DS.HQ.Next;
      end;
UDataModule.DS.HQ.SQL.Clear;
UDataModule.DS.HQ.Close;

Аллилуя, как то так что ли. Вроде работает
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
20.03.2013, 22:30
Цитата Сообщение от lazy g. Посмотреть сообщение
Вроде работает
Аминь.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.03.2013, 22:30
Помогаю со студенческими работами здесь

SQL Server 2005 ошибка при Sql авторизации
Добрый день! Ошибка при попытке sql авторизаци: Login failed for user 'ADMvitalya'. The user is not associated with a trusted SQL...

Не удается найти учетные записи sql server при установке
Предистория: 1.Установил sql server 2016, все прекрасно работало, но оказалось, vs2015 не дружит с ним. 2.Uninstallerом удалить sql...

При сохранению записи с формы процедурой SQL Server, срабатывает триггер, но без показа сообщеня
Здравствуйте! Имеется пустая форма, на которую я ввожу данные и клацаю по кнопке "Сохранить" Так вот, на эту кнопку повешена...

Ошибка при установке sql server
выходить эта ошибка... что делать?

Ошибка при установке MS SQL Server
При установке Server Configuration возникают следующие ошибки: ОС: Windows 7. Пробовала запускать, вызвав супер-администратора...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru