SQL Server 2008 bir saklı yordam için İkili veri gönderme

2 Cevap php

Ben bir veritabanı dosyaları saklamak için bir yol bulmaya çalışıyorum. Ben oldukça veritabanı daha dosya sistemindeki dosyaları saklamak için tavsiye biliyorum, ama ben üzerinde çalışıyorum iş çok bu görüntüler (dosyaları) saklamak için veritabanı kullanarak tercih ederim.

Bazı kısıtlamalar da vardır. Ben bir yönetici kullanıcı değilim, ve ben tüm komutları çalıştırmak için saklanan prosedürleri yapmak zorunda. Bu kadar çok zorluk olmamıştır, ama beni yaşam için veritabanındaki bir dosyayı (görüntü) saklamak için bir yol kuramıyor.

Ben BULK komutunu kullanmaya çalıştığınızda, ben söyleyerek bir hata alıyorum "Sen Toplu yükleme deyimi kullanma iznine sahip değilsiniz." Toplu programı veritabanı dosyaları upload kolay bir yol gibi görünüyordu, ama izinleri olmadan ben bir iş-bir-yuvarlak rakam var.

Ben bir dosya yükleme giriş tipi ile bir HTML formu kullanın ve PHP ile ele verdi. PHP saklı yordamı çağırır ve dosyanın içeriği geçer. Sorun şimdi bir parametrenin maksimum uzunluğu sadece 128 karakter olabileceğini söyleyerek olmasıdır.

Şimdi tamamen şaşırıp. Ben toplu komutunu kullanmak için gerekli izinlere sahip değilsiniz ve ben SP geçebilir bir parametre maksimum uzunluğu 128 karakter olduğu görülmektedir.

Ben ikili karakterler ve ascii karakterler birlikte iyi karışmaz çünkü sorunlarla bekleniyor, ama ben bir ölü sonuna geldim ...

Teşekkürler

2 Cevap

Here is an example I've found David Hayden adlı blog.

Bu c # örneği, ancak adımlar PHP benzer olmalıdır:

  1. Bir bayt dizisi yüklenen dosya dönüştürmek
  2. Sunucuda dinamik TSQL yürütmek

Genel olarak, biz SQL ikili verileri geçemiyor. Biz sunucuya dosya yüklemek, daha sonra veritabanına sunucudan görüntü yüklemek.

Bir dosyadan veritabanına görüntüyü yükleyin:

UPDATE images
SET image = LOAD_FILE('images/myimage.jpg')
WHERE image_id = 1234

Geri bir dosyaya dışarı görüntüyü alın:

SELECT image
INTO DUMPFILE 'images/myimage.jpg'
FROM images
WHERE image_id = 1234