|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#31
|
|||
|
|||
Цитата:
|
#32
|
|||
|
|||
Цитата:
Код:
Expr1002:=summa |
#33
|
|||
|
|||
Цитата:
В запросе добавь еще одну конструкцию: Код:
SELECT T1.[pole1], T1.[pole2],Chr(count(1)+64), T1.[pole3] as [Первое слагаемое], T1.[pole4] as [Второе слагаемое], T1.[pole3]+T1.[pole4] AS summa, Chr(count(1)+64) || '=' || T1.[pole3]+T1.[pole4] as summa_str ... |
#34
|
|||
|
|||
Цитата:
Код:
qry1.SQL.Add('SELECT T1.[поле1], T1.[поле2],Chr(count(1)+64), T1.[поле3] as [Первое слогаемое], T1.[поле4] as [Второе слогаемое], T1.[поле3]-T1.[поле4] AS summa, Chr(count(1)+64) +"="+ T1.[pole3]-T1.[pole4] as summa_str'); |
#35
|
|||
|
|||
на вид все нормально, только там одинарная кавычка вокруг = должна быть (для ввода надо поставить в строке подряд 2 одинарные кавычки).
Ну и конец запроса-то ты куда дел? Я ж не просто так многоточие поставил. Это значит, что все остальные строки запроса надо оставить как есть. |
#36
|
|||
|
|||
Цитата:
Код:
Chr(count(1)+64) +'='+ T1.[pole3]-T1.[pole4] если писать так Код:
Chr(count(1)+64) +''=''+ T1.[pole3]-T1.[pole4] Код:
begin qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('SELECT T1.[поле1], T1.[поле2],Chr(count(1)+64), T1.[поле3] as [Первое слогаемое], T1.[поле4] as [Второе слогаемое], T1.[поле3]-T1.[поле4] AS summa, Chr(count(1)+64) +''=''+ T1.[pole3]-T1.[pole4] as summa_str'); qry1.SQL.Add('FROM [таблица1] as T1 inner join [таблица1] as T2 on T1.[код]>T2.[код] group by T1.[поле1], T1.[поле2], T1.[поле3], T1.[поле4]'); qry1.SQL.Add(' having T1.[поле1]=:p1 AND T1.[поле2]=:p2'); qry1.Parameters.ParamByName('p1').Value := edt1.text; qry1.Parameters.ParamByName('p2').Value := edt2.text; qry1.Open; end; |
#37
|
|||
|
|||
Попробуй последнее выражение переписать вот так:
Код:
Chr(count(1)+64) +''=''+ Str(T1.[pole3]-T1.[pole4]) as summa_str |
#38
|
||||
|
||||
Это же акцес, для него сцепление строк реализовано иначе:
Код:
select Т1.Поле1 as Дисциплина, Т1.Поле2 as Действие, Chr(Count(1)+64) & " = " & Т1.Поле3 & " + " & Т1.Поле4 as Формула, Т1.Поле3 as [Первое слагаемое], Т1.Поле4 as [Второе слагаемое], Т1.Поле3 + Т1.Поле4 as Результат from Таблица1 as Т1 inner join Таблица1 as Т2 on Т1.id >= Т2.id group by Т1.Поле1, Т1.Поле2,Т1.Поле3,Т1.Поле4 having Т1.Поле1 = 'Математика' and Т1.Поле2 = 'Сложение' Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#39
|
||||
|
||||
Опаньки, а вот в Дельфи получаем небольшую проблемку.
Выражение: Chr(Count(1)+64) & " = " & Т1.Поле3 & " + " & Т1.Поле4 as Формула автоматом получает тип TWideMemoField и как следствие в гриде не желает показывать содержимое. Если будете использовать грид, то на поле Формула надо повесить вот такое событие: Код:
procedure TForm8.ADOQuery1ФормулаGetText(Sender: TField; var Text: string; DisplayText: Boolean); begin Text := TWideStringField(Sender).Value end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#40
|
|||
|
|||
Цитата:
|
#41
|
||||
|
||||
А что не так? Аргументы для функции задаются в полях 3 и 4. Из того что было сказано ранее я сделал такой вывод. Но вы можете переделать под себя как вам нужно, идею теперь вы поняли.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#42
|
|||
|
|||
Цитата:
если я напишу Код:
Label1.Caption:=А |
#43
|
|||
|
|||
Цитата:
Код:
procedure TForm1.btn1Click(Sender: TObject); var A: Integer; begin qry1.Close; // qry1.SQL.Clear; // qry1.SQL.Add('SELECT T1.[поле1], T1.[поле2],Chr(count(1)+64) &"="& T1.[поле3]&"-"&T1.[поле4] as [формула], T1.[поле3] as [первое слогаемое], T1.[поле4] as [второе слогаемое], T1.[поле3]-T1.[поле4] AS [результат]'); qry1.SQL.Add('FROM [таблица1] as T1 inner join [таблица1] as T2 on T1.[код]>T2.[код] group by T1.[поле1], T1.[поле2], T1.[поле3], T1.[поле4]'); qry1.SQL.Add(' having T1.[поле1]=:p1 AND T1.[поле2]=:p2'); qry1.Parameters.ParamByName('p1').Value := edt1.text; qry1.Parameters.ParamByName('p2').Value := edt2.text; qry1.Open; lbl1.Caption:=IntToStr(a); end; а в столбце формула а=3-1 Последний раз редактировалось ЧайниКсНосикоМ, 21.12.2015 в 17:29. |
#44
|
||||
|
||||
А как связаны левая переменная А с выполнением запроса? Вы ее создаете локально, ничем не инициализируете и какой мусор содержится в А - это знает только Билли.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 21.12.2015 в 22:45. |
#45
|
|||
|
|||
Цитата:
|