Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
nikalerka
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 77
#1

Данные из MySQL на график

27.05.2014, 21:53. Просмотров 380. Ответов 7
Метки нет (Все метки)

есть таблица, нужно построить график состоящий из точек (х,у). нужно взять первые два столбца таблицы, в первом столбце значения х, во втором у, по ним построить все сие. вот что у меня получилось:

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
var x,y,j:Integer;
    name1,name2: array of Variant;
    xArray: array of array of Variant;
begin
 try
  qry4.SQL.Clear;
  qry4.SQL.Add('SELECT gprs_1, gprs_2 FROM weekly_3');
  qry4.Active:=True;
  except on e:Exception do
  end;
 
  qry4.Last;
  SetLength(xArray,qry4.RecordCount,qry4.Fields.Count);
  qry4.First;
 
  i:=0;
  while not qry4.Eof do
  begin
    for j:=0 to qry4.Fields.Count-1 do xArray[i,j]:=qry4.Fields.Fields[j].Value;
    i:=i+1;
    qry4.Next;
  end;
 
  //Г§Г*ïèñûâГ*ГҐГ¬ Г¤Г*Г*Г*ûå Гў name1 ГЁ name2
  for j:=0 to  qry4.Fields.Count-1 do
  begin
     name1[j]:=xArray[1,j];
     name2[j]:=xArray[2,j];
  end;
 
  n:= qry4.Fields[0].asInteger;
 
  for j:=0 to  n do
  begin
    x:=name1[j];
    y:=name2[j];
    img1.Canvas.Pixels[x,y]:=clRed;
  end;  
end;
выдает ошибку
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00411141 in module 'Project1.exe'. Read of address 00000000'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

что делать??? как???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2014, 21:53
Ответы с готовыми решениями:

Создать график на основе данные Stringgrid
Здравствуйте всем! Передо мной стоит такая задача: есть StringGrid с данными по...

График: расположить данные в порядке возрастания по оси OX
График построен на основе таблице SG, где все данные записаны в строковом типе....

Как построить график используя данные стрингрида
Помогите построить график в делфи по данным стрингрида Ось Х - кварталы, а...

Построить график изменения температуры воздуха (данные брать из StringGrid)
что у меня не правильно?нужно построить график изменения температуры воздуха....

Delphi+MySQL+График
Здраствуйте, уважаемые форумчане. Пишу сейчас дипломный проект, кратко...

7
mss
2632 / 2257 / 275
Регистрация: 24.12.2010
Сообщений: 13,725
27.05.2014, 22:56 #2
Цитата Сообщение от nikalerka Посмотреть сообщение
n:= qry4.Fields[0].asInteger; for j:=0 to n do
Это что за ?

Цитата Сообщение от nikalerka Посмотреть сообщение
//записываем данные в name1 и name2 for j:=0 to qry4.Fields.Count-1 do begin name1[j]:=xArray[1,j]; name2[j]:=xArray[2,j]; end;
И это что за ?

Накой вообще понадобились массивы name1 и name2 ?
И где установка их длин ?
0
nikalerka
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 77
27.05.2014, 23:18  [ТС] #3
только хотела дописать, исправила на

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
var x,y,j:Integer;
    name1,name2: array of Integer;
    xArray: array of array of Integer;
begin
 try
  qry4.SQL.Clear;
  qry4.SQL.Add('SELECT gprs_1, gprs_2 FROM weekly_3');
  qry4.Active:=True;
  except on e:Exception do
  end;
 
  qry4.Last;
  SetLength(xArray,qry4.RecordCount,qry4.Fields.Count);
  qry4.First;
 
  i:=0;
  while not qry4.Eof do
  begin
    for j:=0 to qry4.Fields.Count-1 do xArray[i,j]:=qry4.Fields.Fields[j].Value;
    i:=i+1;
    qry4.Next;
  end;
 
  //ГЁГ*èöèГ*ëèçГ*öèÿ Г¬Г*ññèâîâ
  SetLength(name1,qry4.Fields.Count);
  SetLength(name2,qry4.Fields.Count);
 
  //Г§Г*ïèñûâГ*ГҐГ¬ Г¤Г*Г*Г*ûå Гў name1 ГЁ name2
  for j:=0 to  qry4.Fields.Count-1 do
  begin
     name1[j]:=xArray[0,j];
     name2[j]:=xArray[1,j];
  end;
 
  n:= qry4.Fields[0].asInteger;
 
  for j:=0 to  n do
  begin
    x:=name1[j];
    y:=name2[j];
    img1.Canvas.Pixels[x,y]:=clRed;
  end;
end;
n - длина массива (число строк грубо говоря)
name1 - хранит х
name2 - хранит у

Добавлено через 1 минуту
ошибок не выдает, но не работает, графика тоже не выдет
0
mss
2632 / 2257 / 275
Регистрация: 24.12.2010
Сообщений: 13,725
27.05.2014, 23:23 #4
Цитата Сообщение от nikalerka Посмотреть сообщение
n - длина массива (число строк грубо говоря)
С какого перепугу длина массива у тебя вдруг оказалась в 0-м поле последней записи из набора записей, возвращенных в результате выполнения запроса ?
0
nikalerka
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 77
28.05.2014, 00:36  [ТС] #5
mss, Ваши познания в Delphi лучше моих и это очевидно. мне нужна помощь, а не грубости. как по Вашему лучше это сделать? я брала варианты с форумов, вот такой мне попался. если после моей просьбы сменить тон Вы решите дальше мне не помогать я пойму.

Добавлено через 4 минуты
возможно еще вот так вот n найти

Delphi
1
2
3
4
5
6
7
 try
  qry4.SQL.Clear;
  qry4.SQL.Add('SELECT count(*) FROM weekly_3');
  qry4.Active:=True;
  except on e:Exception do
  end;
  n:= qry4.Fields[0].asInteger;
но результат все равно не выдает..

Добавлено через 57 минут
перевелись однако джентльмены на Руси...
0
northener
пофигист широкого профиля
3418 / 2318 / 630
Регистрация: 15.07.2013
Сообщений: 13,700
28.05.2014, 01:34 #6

Не по теме:

Цитата Сообщение от nikalerka Посмотреть сообщение
перевелись однако джентльмены на Руси...
Ты что-то путаешь с географией.


Цитата Сообщение от nikalerka Посмотреть сообщение
img1.Canvas.Pixels[x,y]:=clRed;
Не очень стандартный способ рисовать графики в Дельфи. TDBChart чем не подошел?
0
mss
2632 / 2257 / 275
Регистрация: 24.12.2010
Сообщений: 13,725
28.05.2014, 09:06 #7
Цитата Сообщение от nikalerka Посмотреть сообщение
а не грубости
Где ты увидела грубость ?
Был задан простой вопрос - откуда в 0-м поле записи возьмется длина массива, если в задании черным по белому сказано "в первом столбце значения х, во втором у" ?

Цитата Сообщение от nikalerka Посмотреть сообщение
если ..Вы решите дальше мне не помогать
Именно этим я и занимаюсь, пытаясь заставить тебя думать
0
nikalerka
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 77
28.05.2014, 10:58  [ТС] #8
northener
TDBChart чем не подошел?
О_о Боже, да Вы гений! как я могла забыть про это чудо, так кстати подходящее для этой задачи!!! где почитать не подскажите, если под рукой?))
0
28.05.2014, 10:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2014, 10:58

PHP+MySQL= График
Как построить график используя данные из базы MySQL? Самый простой и понятный...

Данные из файла на график
Ребят, подскажите, как реализовать по нажатию кнопки чтобы пользователь выбрал...

Построить график (данные из TextBox)
Здравствуйте! Недавно начал пользоваться C#. Поэтому прошу вашей помощи. ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru