---
title: "Jag har problem med SQL i Delphi!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/99077-jag-har-problem-med-sql-i-delphi"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Dr-man"
published: "2004-03-09T13:02:55.000Z"
updated: "2004-03-16T11:13:57.000Z"
replies: 15
views: 511
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/99077-jag-har-problem-med-sql-i-delphi"
---

# Jag har problem med SQL i Delphi!

## #1 — Dr-man, 2004-03-09T13:02Z

Jag har följande problem med SQL i Delphi! 

När försöker köra följande kod i Delphi version 5. 

```php
 
with Query1 do 
  begin 
    SQL.Clear; 
    Close; 
    SQL.Add('insert into address2(Name,Telefon) values(:'+Edit1.Text+',:'+Edit2.Text+')'); 
    ExecSQL; 
  end;
```

 

får jag detta felmeddelande 

```php
Query1 Field is of an unknown type
```

Permalänk: https://www.webforum.nu/p/99077

## #2 — Tigermannen, 2004-03-09T15:04Z

fnuttar

jag antar att Name och Telefon är av typen sträng. Isf ska du ha fnuttar runt datan du skickar in i SQL-satsen, enklast fixar du detta med funktionen QuotedStr som finns i sysutils:

with Query1 do 
  begin 
    SQL.Clear; 
    Close; 
    SQL.Add('insert into address2(Name,Telefon) values('+quotedstr(Edit1.Text)+','+quotedstr(Edit2.Text)+') '); 
    ExecSQL; 
 end;

mvh Tony

Permalänk: https://www.webforum.nu/p/1294713

## #3 — Dr-man, 2004-03-10T07:53Z

Tack nu fungerar det!

Hur löser jag följande?
Koden:

```php
SQL.Add('delete from address where Namn='+DBGrid1.SelectedField);
```

 

```php
Får felmeddelandet:
Incompatible types: 'String' and 'TField'
```

Permalänk: https://www.webforum.nu/p/1295068

## #4 — Tigermannen, 2004-03-10T09:07Z

SQL.Add('delete from address where Namn='+qutoedstr(DBGrid1.SelectedField.asstring));

mvh Tony

Permalänk: https://www.webforum.nu/p/1295109

## #5 — Dr-man, 2004-03-10T10:04Z

Annars vet du nån bra manual som tar upp sql i Delphi?

Permalänk: https://www.webforum.nu/p/1295140

## #6 — Tigermannen, 2004-03-10T10:21Z

Här finns en ganska bra nybörjarguide till delphi, samt en artikel om delphi och ADO:

<http://www.fuzzydizzie.com/d_index.htm>

/Tony

Permalänk: https://www.webforum.nu/p/1295152

## #7 — Dr-man, 2004-03-10T13:09Z

Vad är det för fel när det inte vill fungera fast jag trycker på knapp
som skall radera det markerade fältet?

Kod:

```php
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  Check:=True;
  Button1.Enabled:=True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if DBGrid1.SelectedRows.Count<0 then
  begin
    with Query1 do
    begin
      SQL.Clear;
      SQL.Add('delete from address2 where Namn='+quotedstr(DBGrid1.SelectedField.asstring));
      ExecSQL;
    end;
    Button1.Enabled:=False;
  end;
end;
```

Permalänk: https://www.webforum.nu/p/1295234

## #8 — akkeakker, 2004-03-10T22:55Z

Uppfylls verkligen villkoret i if-satsen?

Permalänk: https://www.webforum.nu/p/1295570

## #9 — Dr-man, 2004-03-11T07:36Z

Har ingen aning!

Men hur skall man korrigera detta för att få det att fungera?

Permalänk: https://www.webforum.nu/p/1295600

## #10 — Tigermannen, 2004-03-11T09:47Z

så här kan du göra:

if DBGrid1.SelectedField.asstring\<\>'' then
  begin
    with Query1 do
    begin
      SQL.Clear;
      SQL.Add('delete from address2 where Namn='+quotedstr(DBGrid1.SelectedField.asstring));
      ExecSQL;
..

mvh Tony

Permalänk: https://www.webforum.nu/p/1295633

## #11 — Dr-man, 2004-03-11T10:30Z

När jag använder koden i det föregående inlägget, får jag
följande felmeddelande:
Access violation at adress 0048D797 in module 'sqlprog.exe' 
Read of adress 00000000

Kan nån hjälpa mig?

Permalänk: https://www.webforum.nu/p/1295661

## #12 — Hardrocker, 2004-03-11T10:57Z

En liten observation.

Borde du inte kolla om SelectedRows.Count är större än noll istället för mindre än noll?

/Ante

Permalänk: https://www.webforum.nu/p/1295701

## #13 — Dr-man, 2004-03-12T06:47Z

Kan ingen hjälpa med problemet?!

Eller finns det nån annan lösning?

Permalänk: https://www.webforum.nu/p/1296192

## #14 — @nders, 2004-03-12T06:50Z

> **Dr-man skrev:**
>
> Kan ingen hjälpa med problemet?!

Var det inte det Hardrocker försökte göra?

Läs hans inlägg igen. Utan att kunna Delphi tycker jag att just det ser konstigt ut.

Permalänk: https://www.webforum.nu/p/1296193

## #15 — Dr-man, 2004-03-12T07:39Z

Problemet har inget med if-satsen att göra utan närmare bestämt med denna rad
SQL.Add('delete from address2 where Namn='+quotedstr(DBGrid1.SelectedField.asstring));

Efter jag satt till denna rad, så började problemet

Access violation at adress 0048D797 in module 'sqlprog.exe' 
Read of adress 00000000

Ingen som har någon aning?

Permalänk: https://www.webforum.nu/p/1296201

## #16 — Hardrocker, 2004-03-16T11:13Z

Kontrollera selectedfield verklig är assignad.

Testa följande:

```
if assigned(DBGrid1.SelectedField) then
SQL.Add('delete from address2 where Namn='+quotedstr(DBGrid1.SelectedField.asstring))
else
showmessage('hej hopp');
```

/Ante

Permalänk: https://www.webforum.nu/p/1301734

---

Tråden på webben: https://www.webforum.nu/amne/programmering/99077-jag-har-problem-med-sql-i-delphi
