SQL de The name "MBBB01" is not permitted in... Hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen neu84 »

Selamlar arkadaşlar. Şu şekilde bir sql sorgum var delphi içinde kullanıyorum, normalde values içindekiler sql üzerinde tek tırnak ile çalışır ancak olmadığı için çift tırnaklı yaptım.. Kayıt yapmaya çalıştığımda

The name "MB00000002001" is not permitted in this context. Valid expressions are constants, constant expression, and (in some contexts) variables. Column names are not permitted".
diye bir hata çıkıyor. Sorgumda bi sorun görüyormusunuz, aşamadım sorunu yardımlarınızı bekliyorum..

Kod: Tümünü seç

 
  sKodum:='MB00000002001';
  sqlInsert1:= 'insert into tbStok';
  sqlValues:=' Values("'+sKodum+'",8,"",1,"","","","","","AD","AD",0,"",0,0,0,"",0,"","sa","'+yeniTarih+'","True","","True","False","",0,"False",0)';
  sql:= sqlInsert1+sqlValues;
  Memo2.Text:=sql;
  DataModule2.ADOQuery1.SQL.Clear;
  DataModule2.ADOQuery1.SQL.Add(sql
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen conari »

tbStok tablosu master detail olabilir ve master tabloda MB00000002001 tanımlı olmayabilir.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen aslangeri »

s.a.
memo2 nin textindeki sorguyu çalıştırdığınız zaman aynı hatayı alıyormusunuz?
tablonuzun yapısı nasıl.
muhtemelen "skodum" değişkenindeki değer yazmaya çalıştığınız alan ile uyumsuz özellik içeriyor.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen neu84 »

conari yazdı:tbStok tablosu master detail olabilir ve master tabloda MB00000002001 tanımlı olmayabilir.
cevap için tşk ederim..
MB00000002001 bi kod bunu manuel olarak giriyorum, yani tanımlı olması gerekmiyor sanırım insert yapılabilmesi için yanılıyormuyum? master detail olması insert yapılamayacagı anlamına gelir mi peki, napabilirim sizce?
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen neu84 »

aslangeri yazdı:s.a.
memo2 nin textindeki sorguyu çalıştırdığınız zaman aynı hatayı alıyormusunuz?
tablonuzun yapısı nasıl.
muhtemelen "skodum" değişkenindeki değer yazmaya çalıştığınız alan ile uyumsuz özellik içeriyor.
kolay gelsin.
Tşk ederim cevap için.. Memoda ki veri sadece sorgunun dogru oluşturulup oluşturulmadıgını kontrol etmem içindi, veri sorguyu ordan almıyorum. sql değişkenini çalıştırıyorum.

tablomda
nStokID int,
sKodu char(20) olaral geçiyor.

sürekli bu sorunla boguşuyorumm lütfen yardımm
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen aslangeri »

Memoda ki veri sadece sorgunun dogru oluşturulup oluşturulmadıgını kontrol etmem içindi, veri sorguyu ordan almıyorum. sql değişkenini çalıştırıyorum.
Kontrol için soruyorum bende. memoda kontrol için oluşturuğun sorguyu management studio dan (veya ne kullanıyorsanız ordan) çalıştırabiliyor musun?
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen neu84 »

aslangeri yazdı:
Memoda ki veri sadece sorgunun dogru oluşturulup oluşturulmadıgını kontrol etmem içindi, veri sorguyu ordan almıyorum. sql değişkenini çalıştırıyorum.
Kontrol için soruyorum bende. memoda kontrol için oluşturuğun sorguyu management studio dan (veya ne kullanıyorsanız ordan) çalıştırabiliyor musun?
hayır çünkü delphide insert kullanacagım zaman management studio üzerinde yazdıgım sorgu degişiyo, values('BURAK') olacagı yerde values("BURAK") yazmam gerekiyo nedense onuda çözebilmiş degilim.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen orhancc »

o alanı Default değer tanımlayıp birşey atıyorsan bu hatayı alırsın.
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen neu84 »

orhancc yazdı:o alanı Default değer tanımlayıp birşey atıyorsan bu hatayı alırsın.
hhmm constant falan bişeyler diyodu bi de hata kodunda.. sanırım olabilir bu dediğiniz.. tşk ederimm..
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen neu84 »

arkadaşlar QuotedStr diye bişey var onu kullandım o bahsettigimiz sorun kalktı ortadan..

sqlValues:='Values('+quotedstr(sKodum)+','+quotedstr('')+','+quotedstr('')+',1,'+quotedstr('')+','
+quotedstr('')+','+quotedstr('')+','+quotedstr('')+','+quotedstr('')+','+quotedstr('AD')+','+quotedstr('AD')+',0,'
+quotedstr('KKF')+',0,0,0,'+quotedstr('KKKD')+',0,'+quotedstr('V')+','+quotedstr('SA')
+',:tarih,'+quotedstr('True')+','+quotedstr('asds')+','+quotedstr('True')+','+quotedstr('False')+','+quotedstr('kkkj')+',0,'+quotedstr('False')+',0)';

bu şekilde oldu kodum, ancak bu seferde tarih girişi yapamıyorum.

Birde bu quotedStr tam olarak ne amaçla kullanılıyor bilen varmıydı acabba?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen aslangeri »

neu84 yazdı: hayır çünkü delphide insert kullanacagım zaman management studio üzerinde yazdıgım sorgu degişiyo, values('BURAK') olacagı yerde values("BURAK") yazmam gerekiyo nedense onuda çözebilmiş degilim.
çifttırnaklardan dolayı hata veriyor. çift tırnak mevzusunu yanlış anlamışsın sanırım.
çift tırnak dediğimiz zaman (") karekterinden değil ('')karakterinden bahsediyoruz. yani(')karakterinden iki tane.
delphiden string ifadeyi sorgu olarak hazırladığın zaman sorguda tek tırnak olması için delphiden çift tırnak göndemen lazım.
quotedstr de bu zahmetten kurtulmak ve kodları daha okunaklı kılmak için tırnağı kendisi ekliyor.
memodaki sorguyu management studio da çalıştırdığın zaman sorun kalmayacak gibime geliyor.
tarihler için ise parametre kullanmanı tavsiye edeceğim.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: SQL de The name "MBBB01" is not permitted in... Hatası

Mesaj gönderen neu84 »

aslangeri yazdı:
neu84 yazdı: hayır çünkü delphide insert kullanacagım zaman management studio üzerinde yazdıgım sorgu degişiyo, values('BURAK') olacagı yerde values("BURAK") yazmam gerekiyo nedense onuda çözebilmiş degilim.
çifttırnaklardan dolayı hata veriyor. çift tırnak mevzusunu yanlış anlamışsın sanırım.
çift tırnak dediğimiz zaman (") karekterinden değil ('')karakterinden bahsediyoruz. yani(')karakterinden iki tane.
delphiden string ifadeyi sorgu olarak hazırladığın zaman sorguda tek tırnak olması için delphiden çift tırnak göndemen lazım.
quotedstr de bu zahmetten kurtulmak ve kodları daha okunaklı kılmak için tırnağı kendisi ekliyor.
memodaki sorguyu management studio da çalıştırdığın zaman sorun kalmayacak gibime geliyor.
tarihler için ise parametre kullanmanı tavsiye edeceğim.

Çok teşekkür ederim cevabınız için.. Ben çift tırnak koyuyolar sanıyodum o şekilde yapıyodum, anladım olayı tşk ederim.. tek tırnak nasıl olsa sql içinde hata yaratacaktır diye düşünüyordum ama çift tırnak koyuyolarsa bi bildikleri vardır diye düşünmüştüm yanlış düşünmüşüm :) şimdi açıklığa kavuştu. peki çift tırnagın ne görevi var delphide? daha dogrusu var mı?
Cevapla