Avatar billede vallemanden Nybegynder
10. juni 2011 - 02:52 Der er 7 kommentarer og
1 løsning

DBexpress expert

Hej alle,

Jeg skal bruge noget hjælp med DBExpress, da jeg får lidt fejl jeg ikke lige kan gennemskue
Avatar billede arne_v Ekspert
10. juni 2011 - 03:47 #1
Overvej at post fejl besked og kontekst beskrivelse.
Avatar billede vallemanden Nybegynder
10. juni 2011 - 05:03 #2
der er ikke plads til det hele :D... jeg vil gerne have en jeg f.eks. kan tilføje msn, som en slags mentor.

fejl:
No SQL statement available
men når jeg Query1.SQL.SaveToFile('c:\sql.txt');
så indeholder den alt, og kopiere jeg den til f.eks. et database manager så virker det der, og det virkede også med den komponent jeg brugte før.(den komponent jeg brugte før er forældet og bliver ikke opdateret mere)

det var den ene fejl
Avatar billede hrc Mester
10. juni 2011 - 09:25 #3
Nå nu du kommer med så god en beskrivelse, så tror jeg det er dit script der er forkert lavet. Det er alt jeg kan hjælpe med p.t. DBExpress er måske mere krakilsk mht. syntaktisk sjusk - eller måske bruger du ikke parametre (også sjusk). Noget kunne måske tyde på det, siden du kan eksekvere et gemt script umiddelbart.

Eksperten er et sted, hvor veldokumenterede spørgsmål tit resulterer i svar af samme kaliber .. og visa versa. IMHO.
Avatar billede vallemanden Nybegynder
10. juni 2011 - 14:01 #4
du har ret hrc.
syntaxen er forkert, kan du hjælpe med at få den i orden?
INSERT INTO fsu.forcast(ID,vnr, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
VALUES(1,'01-101' ,414, 414, 414, 414, 414, 414, 414, 414, 414, 414)
Avatar billede hrc Mester
10. juni 2011 - 16:46 #5
Antager at alle andre en vnr er et heltalsfelt. Hvis vnr er et char eller, varchar felt så burde der ikke være problemer, men hvad nu hvis det er en nchar eller nvarchar? Så skal der vistnok et N foran strengen, altså N'01-101'. Jeg skal ikke kunne sige om det er sådan noget der er galt, men grundlæggende skal et script ikke hårdkodes. Der skal parametre på:

Scriptet i din SQL-komponent bør se se sådan ud:
INSERT INTO fsu.forcast(ID,vnr,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
VALUES(:ID,:vnr,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8,:a9,:a10)

og parametrenes type skal angives i dit datasæts liste af parametre og dine data skal sættes ind den vej fra.
Avatar billede vallemanden Nybegynder
10. juni 2011 - 17:16 #6
hmm.. jeg forstår ikke meget af hvad du skriver :-$
vnr er varchar i DB
men betyder det at det skal se sådan ud?
VALUES(:1,:N'01-101',:414,:414,:414,:414,:414,:414,:414,:414,:414,:414)
Avatar billede vallemanden Nybegynder
10. juni 2011 - 18:09 #7
bygger sql på denne måde

    while not Form1.MySQLQuery2.client.Eof do
    begin
      i2:=i2+1;
      Form1.MySQLQuery1.Sql.Clear;
      Form1.MySQLQuery3.Sql.Clear;
      Form1.MySQLQuery1.SQL.BeginUpdate;
      Form1.MySQLQuery3.SQL.BeginUpdate;
      Antal := Form1.MySQLQuery2.client.FieldByName('antal').AsInteger;
      VareNummer := AnsiquotedStr(Form1.MySQLQuery2.client.FieldByName('vnr').AsString, #39);
      Form1.MySQLQuery1.Sql.Add('INSERT INTO '+server+'.forcast ');
      Form1.MySQLQuery1.Sql.Add('(ID,vnr, ');
      for i := 1 to 364 do
      begin
        Form1.MySQLQuery1.Sql.Add('a' + IntToStr(i) + ', ');
        Form1.MySQLQuery3.Sql.Add(IntToStr(Antal) + ', ');
      end;
      Form1.MySQLQuery1.Sql.Add('a365');
      Form1.MySQLQuery1.Sql.Add(')');
      Form1.MySQLQuery1.Sql.Add('VALUES');
      Form1.MySQLQuery1.Sql.Add('(');
      Form1.MySQLQuery1.Sql.Add(IntTostr(i2)+','+VareNummer + ' ,');
      Form1.MySQLQuery3.Sql.Add(IntToStr(Antal));
      Form1.MySQLQuery3.Sql.Add(')');
      Form1.MySQLQuery1.SQL.Add(Form1.MySQLQuery3.SQL.Text);
      Form1.MySQLQuery1.ExecSQL(True);
      Form1.MySQLQuery1.SQL.EndUpdate;
      Form1.MySQLQuery3.SQL.EndUpdate;
      Form1.MySQLQuery2.client.Next;
    end;
Avatar billede vallemanden Nybegynder
02. juli 2011 - 14:27 #8
har opgivet dbexpress
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester