none
String Too Long RRS feed

  • Soru

  • Arkadaşlar Sql Serverdaki bir stored proceduru delphiden parametre gödnererek çalıştırmak istiyorum. fakat 30 civarında parametre var haliyle adoqueri'ye yazdığım sql cümlesi çok uzun oluyorç sonuç itibariyle String Too Long diye bir hata alıyorum var mıdır yapıyı bozmadan çözmenin bir yolu. 
    7 Mayıs 2019 Salı 10:34

Tüm Yanıtlar

  • Acikcasi Delphi kullanmadigim icin ancak tahminler uzerinden yazıyorum:

    Hatanin SQL Server tarafından kaynaklandigini dusunmuyorum, batch size 65536 * network packet boyutu (NPS 4096 olsa 4K * 65 K string demek - 1024 olsa bile 64 Mb eder), parametre sayısı da 2100. Bir de bildigim kadarıyla SQL Server'da öyle bir hata mesajı yok.

    Eski dilleri düşününce, 255 maximum literal string kullananları var, muhtemelen Delphi'da oyle. Oyleyse yozum icin önerim, (kısıtlama literal string boyutudur, string değişken boyutu oldugunu sanmıyorum):

    queryString = "cok cok uzun literal string"

    seklinde yazmak yerine N tane string'e bolun:

    query string = "cok" + " cok" + " uzun" + " literal string"

    gibi (parcalar max 255).

    Ya da Delphi'da da HEREDOC gibi uzun string literal yazilmasini saglayan yapılar vardır (yani VFP'de bile cok daha pratik yollari var, Delphi'da yoksa cok sasiririm).

    Bir dosya ya da stream'den okuyup göndermek bir baska yöntem.

    Bu arada, 30 parametreli bir stored procedure cagirma komutu neden cok uzun olsun ki? Parametre isimleri mi cok uzun? Yoksa stored procedure adi mi cok uzun?

    7 Mayıs 2019 Salı 15:55
  • muhterem hocam kaçırdığım çok önemli bir ayrıntı var delphi ben adoquery nesnesi kullanıyordum ama adostoredprocedure kullanınca bu sorun kendiliğinden kalktı. sanıyorum 255 karekterden daha uzun olmaması gerekiyor ben parametrelere isim vererek kullandığım için adoqueryde b ugatayı aldım. 
    8 Mayıs 2019 Çarşamba 18:35
  • Anladim. Adoquery de olsa çok uzun sorgular yazmak mumkun. 
    8 Mayıs 2019 Çarşamba 22:17