Caute, robim databazu v Delphi, v ktorej vyuzivam SQL prikazy cez komponent QUERY.
Mam jednu tabulku s nazvom data a stlpce ID, Datum, Bod, X,Y,Z,Standard_X, USL_X, LSL_X,,Standard_Y, USL_Y, LSL_Y,,Standard_Z, USL_Z, LSL_Z.
Tlacitko na vypocet maxima a naplnanie stringgridu.
procedure THistogram.Button2Click(Sender: TObject);
var n,i,k: Integer;
h :Extended ;
begin
h:=0;
VW.Query1.RequestLive:= False ;
VW.Query1.Open;
VW.Query1.SQL.Add('Select Max(X) as maxi from data');
VW.Query1.ExecSql;
h := VW.Query1.FieldByName('maxi').AsFloat;
ShowMessage(FloatToStr(h));
n:=VW,Query1.RecordCount;
k:=Round(sqrt(n));Stringgrid1.RowCount:=k+1;
StringGrid1.Cells[0,0]:='id';
StringGrid1.Cells[1,0]:='zaciatok int.';
StringGrid1.Cells[2,0]:='koniec int.';
StringGrid1.Cells[3,0]:='stred';
StringGrid1.Cells[4,0]:='pocetnost';
for i:=1 to k+1 do
StringGrid1.Cells[0,i]:=IntToStr(i);
end;
Chyba: Po stlaceni tlacitka pise chybu:
Cielom tohto tlacitka je vytvorit tabulku, ktora bude obsahovat stlpce: ID, zac.int., koniec int., stred, pocetnost. A z poslednych dvoch stlpcov stred a pocetnost chcem vytvorit histogram.
Ocenila by som pomoc aj pri tomto. Problem s Max je len medzikrok pomocou, ktoreho chcem vypocitat sirku intervalu.
Procedura na vkladanie akcnych dotazov.
procedure TPridaj.UrobSQL(prikazSQL: String);
Var
Query: TQuery;begin
Query := TQuery.Create(nil);
Query.SQL.Add(prikazSQL);
Query.ExecSQL;
Query.Free;
end;
Tlačítko, ktore vklada zaznamy do data.
Toto tlacitko ma vkladat dva zaznamy naraz, ktore maju rovnaky datum a nazov bodu, ostatne stlpce sa odlisuju. Tlacitko je umiestnene na inom formulari (formular Pridaj) ako je tabulka (Formular VW)
.
procedure TPridaj.Button2Click(Sender: TObject);
var datep:Tdatetime; X,Z,Y,X2,Y2,Z2,i:Integer; bod:String;
begin
X:=StrToInt(Edit1.Text);
Y:=StrToInt(Edit2.Text);
Z:=StrToInt(Edit3.Text);
X2:=StrToInt(Edit4.Text);
Y2:=StrToInt(Edit5.Text);
Z2:=StrToInt(Edit6.Text);
datep:=Strtodatetime(Datum.text);
UrobSQL('INSERT INTO data (Datum,BOD,X,Y,Z) VALUES
(datetostr(datep),("+VW.ComboBox1.Text+"),X,Y,Z),
(datetostr(datep),"VW.ComboBox1.Text",X2,Y2,Z2)');
Chyby:
- Unterminated string
- Missing operator or semicolon
- [Error] Unit4.pas(85): Illegal character in input file: '"' ($22
Urcite mam chyby v syntaxe. Viete mi poradit ako pouzivat proceduru UrobSQL ? Tuto proceduru nemam z vlastnej hlavy, takze neviem celkom dobre ako do nej zadavat prikazy. Bolo mi povedane, ze sluzi na zadavanie akcnych dotazov.