Delphi + SQL

0

Panowie!
Pomozcie, bo ja juz wariuje...
Pisze program i chce za pomoca jego tworzyc nowa tabele na serwerze SQLowym. Mam kontrolki sqlconnection oraz sql query, zreszta dziala mi polecenie 'delete from tabela'. Niestety siedze od dwoch dni i juz wlosy rwe ze lba. Otoz jak wspomnialem chce stworzyc tabele.

Mam taki kod:

    SQL.Clear;
    SQL.Add('USE [TEST]');
    SQL.Add('CREATE TABLE bleble');

i dostaje taki blad:

Database Server Error: SQL State: 42000, SQL Error Code: 170
Line 2: Incorrect syntax near 'bleble'

Dodam, ze ogolnie chcialbym doprowadzic kod do postaci:

begin
  dodajtekst:='';
  with DM.sumyQuery do
  begin
    dodajtekst:=dodajEdit.Text;
    SQL.Clear;
    SQL.Add('SET ANSI_NULLS ON');
    SQL.Add('SET QUOTED_IDENTIFIER ON');
    SQL.Add('USE [TEST]');
    SQL.Add('CREATE TABLE ' + dodajtekst);
    SQL.Add('([LOT] [decimal](6, 0) NOT NULL');
    SQL.Add('[Brutto] [decimal](6, 2) NOT NULL');
    SQL.Add('[Netto] [decimal](6, 2) NOT NULL');
    SQL.Add('[Wydano Brutto] [decimal](6, 2) NOT NULL CONSTRAINT [DF_' + dodajEdit.text + '_Wydano Brutto]  DEFAULT (0)');
    SQL.Add('[Wydano Netto] [decimal](6, 2) NOT NULL CONSTRAINT [DF_' + dodajEdit.text + '_Wydano Netto]  DEFAULT (0)');
    SQL.Add(')');
    SQL.Add('ON [PRIMARY]');}
    ExecSQL;
  end;

Prosze o pomoc, bo juz drugi dzien nad tym siedze. Program skonczylem, a przez to nie moge go nikomu podpiac :(

0

TQuery nie służy do wykonywania skryptów SQL. Umie wykonać jedno polecenie naraz.

0

To czym to wykonac?
Ale przeciez nawet nie chce zrobic jednego polecenia

 SQL.Add('CREATE TABLE bleble');

, bo wywala ten wlasnie blad...

//EDIT:

Z TADOQuery dzieje sie to samo :(

//EDIT2:

Dziala z TQuery, okazalo sie, ze zjadlem jedna literke w skladni (a dokladnie nawiasu). Teraz dziala. Krotko mowiac, TQuery wykonalo mi calusienki skrypt (ok. 15 linii kodu) :)

0
patefoniq napisał(a)

To czym to wykonac?
Ale przeciez nawet nie chce zrobic jednego polecenia

 SQL.Add('CREATE TABLE bleble');

, bo wywala ten wlasnie blad...

//EDIT:
Z TADOQuery dzieje sie to samo :(

Nie pamiętam, które to przykazanie: Nie rób w trąbę bliźniego swego?
W pierwszym poście napisałeś, że przedtem robisz

    SQL.Clear;
    SQL.Add('USE [TEST]');
    SQL.Add('CREATE TABLE bleble');

Według Ciebie to jest jedno polecenie?

co do tego, "czym" - poszukaj, jest od metra komponentów do wykonywania ciągów poleceń (podpowiedź: nazywamy taki ciąg SKRYPTEM)

1 użytkowników online, w tym zalogowanych: 0, gości: 1