Skocz do zawartości

Zdjęcia filestream, dodawanie

Polecane posty

Chyba doszło do jakiegoś nieporozumienia. Generalnie nie jestem programistą i nie wiem, czy dobrze odpowiem, ale spróbuję...

 

Jak najbardziej można dodać sferycznie zdjęcie do galerii asortymentu - jest nawet przykład w pliku pomocy do sfery (proszę szukać po ImportujMediaDokument). Nie można natomiast dodawać sferycznie plików do biblioteki załączników, a to dwa oddzielne mechanizmy.

 

Proszę mnie poprawić, jeśli się mylę.

Link to postu

Zdjęcia są trzymane w tabeli MediaDokumentElementy, a w niej nie ma z tego co widzę wsparcia dla Filestream - są przechowywane w zmiennej bitowej. Wystarczy przejrzeć dokumentację bazy danych pod słowie "filestream" i będzie wiadomo w jakich tabelach jest stosowany. Ale zdjęcia są teraz chyba w jakieś przebudowie, tak wnioskuję z forum, więc może Insert coś dopowie w temacie :)

28 minut temu, Jacek Izydorczyk napisał:

Nie można natomiast dodawać sferycznie plików do biblioteki załączników, a to dwa oddzielne mechanizmy.

Pliki do biblioteki załączników można dodawać poprzez Sferę, korzystam z tego od 2 lat ;) Obecnie jest nawet modyfikowana DLL i baza z tym związana.

 

Link to postu
1 minutę temu, Radomił Ząbik napisał:

Zrobi Pan Sobie na podstawie przykładu z SDK, na pewno zadziała. Proszę pamiętać o podpięciu biblioteki, przez using, jak w dokumentacji.

obraz.png.c9e47315a4b694093590b6473db60129.png

Mam zrobione w dokładnie taki sam sposób, błąd pojawia się przy pliku .jpg, przy .png dodanie asortymentu przechodzi bez problemu, lecz zdjęcie się nie pojawia.

Link to postu
2 minuty temu, Krzysztof Paździorny napisał:

Tak, dotyczy tego. 

 

Wiersz 29 jest wywołanie metody dodawania towaru, w tej metodzie w linii 95 jest towar.zapisz(). Błąd występuje tylko jak jest importmediadokument(), jeżeli nie używam tego, towar dodaje się bez problemu. 

Edytowane przez Krzysztof Paździorny
Link to postu
namespace ConsoleApp1
{
    class Program
    {
        private static SferaLauncher launcher;
        private static Uchwyt Sfera;
      
        static void Main(string[] args)
        {
            launcher = new SferaLauncher("127.0.0.1\\INSERTNEXO", "Nexo_Sebastian", "sa", "", "Szef", "robocze");
            Console.WriteLine("Łączenie ze sferą!");
            Sfera = launcher.UruchomSfere();
            Console.WriteLine("Sfera połączona pomyślnie!");

            DodajProdukt d = new DodajProdukt("TEST2", "TE2ST", 5.5m, 50m, "555332333888", "555", Sfera);
            d.DodawanieProduktu();
            Console.ReadLine();
        }
    }
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
namespace ConsoleApp1
{
    class SferaLauncher
    {
        private string serwer;
        private string baza;
        private string login;
        private string haslo;
        private string loginuser;
        private string haslouser;

        public SferaLauncher(string serwer, string baza, string login, string haslo, string loginuser, string haslouser)
        {
            this.serwer = serwer;
            this.baza = baza;
            this.login = login;
            this.haslo = haslo;
            this.loginuser = loginuser;
            this.haslouser = haslouser;
        }

        public Uchwyt UruchomSfere()
        {
            DanePolaczenia danePolaczenia = null;
            danePolaczenia = DanePolaczenia.Jawne(serwer, baza, false, login, haslo);
            MenedzerPolaczen mp = new MenedzerPolaczen();
            Uchwyt sfera = mp.Polacz(danePolaczenia, ProductId.Subiekt);
            if (!sfera.ZalogujOperatora(loginuser, haslouser))
                throw new ArgumentException("Nieprawidłowa nazwa lub hasło użytkownika.");
            return sfera;
        }
    }
}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
namespace ConsoleApp1
{
    class DodajProdukt
    {
        private SferaLauncher launcher;
        private Uchwyt Sfera;
        private IPodmioty podmioty;
        private ISzablonyAsortymentu szablony;
        private IAsortymenty asortymenty;
        private IAsortyment nowyTowar;
        private IPozycjeCennika pozycjeCennika;
        private IBibliotekaZalacznikow bibliotekaZalacznikow;
        private IZalacznikWBibliotece zalacznikWBibliotece;
        private Asortyment dd;

        private Podmiot Dostawca;
        private string Zdj;
        private string EAN;
        private string NazwaProduktu;
        private string OpisProduktu;
        private decimal WagaProduktu;
        private string KodProduktuProducenta;
        private decimal CenaPodstawowaNetto;

        public DodajProdukt(string NazwaProduktu, string OpisProduktu, decimal CenaPodstawowaNetto, decimal WagaProduktu, string EAN, string KodProduktuProducenta, Uchwyt Sfera)
        {
            this.NazwaProduktu = NazwaProduktu;
            this.OpisProduktu = OpisProduktu;
            this.CenaPodstawowaNetto = CenaPodstawowaNetto;
            this.WagaProduktu = WagaProduktu;
            this.EAN = EAN;
            this.KodProduktuProducenta = KodProduktuProducenta;
            this.Sfera = Sfera;
        }

        public void DodawanieProduktu()
        {
            Console.WriteLine("Dotarłem do void DodawanieProduktu()");
            using (Sfera)
            {
                podmioty = Sfera.PodajObiektTypu<IPodmioty>();
                szablony = Sfera.PodajObiektTypu<ISzablonyAsortymentu>();
                asortymenty = Sfera.PodajObiektTypu<IAsortymenty>();
                nowyTowar = asortymenty.Utworz();
                pozycjeCennika = Sfera.PodajObiektTypu<IPozycjeCennika>();
                Dostawca = podmioty.Dane.Wszystkie().Where(pdm => pdm.NazwaSkrocona == "Maria Malinowska").FirstOrDefault();
                bibliotekaZalacznikow = Sfera.PodajObiektTypu<IBibliotekaZalacznikow>();
                zalacznikWBibliotece = bibliotekaZalacznikow.Utworz();
                nowyTowar.WypelnijNaPodstawieSzablonu(szablony.DaneDomyslne.Towar);
                nowyTowar.AutoSymbol();
                nowyTowar.Dane.Nazwa = NazwaProduktu;
                nowyTowar.Dane.Opis = OpisProduktu;
                nowyTowar.Dane.JednostkaSprzedazy.Masa = WagaProduktu;
                var kod = new KodKreskowy() { Kod = EAN };
                nowyTowar.Dane.PodstawowaJednostkaMiaryAsortymentu.KodyKreskowe.Add(kod);
                nowyTowar.Dane.PodstawowaJednostkaMiaryAsortymentu.PodstawowyKodKreskowy = kod;
                nowyTowar.Dostawcy.Dodaj(Dostawca);
                nowyTowar.Dane.DaneAsortymentuDostawcyPodstawowego.Symbol = KodProduktuProducenta;

                foreach (PozycjaCennika poz in nowyTowar.Dane.PozycjeCennika)
                {
                    IPozycjaCennika jestPozycja = pozycjeCennika.Znajdz(poz);
                    switch (jestPozycja.Dane.Cennik.PoziomCen.Nazwa)
                    {
                        case "Podstawowy":
                            jestPozycja.Dane.CenaNetto = CenaPodstawowaNetto;
                            break;
                    }
                }

  
                string strFile = @"D:\sello.png"; //pobrane z http://www.insert.com.pl/.grafika/pudelka/sello.png
                if (System.IO.File.Exists(strFile))
                    nowyTowar.MediaDokumenty().ImportujMediaDokument(strFile);


                Console.WriteLine("Towar utworzony");
                if (nowyTowar.Zapisz())
                    Console.WriteLine("Poprawnie zapisano nowy towar");
                else
                    Console.WriteLine("Coś się popsuło");


            }
        }
    }
}

 

Link to postu
3 minuty temu, Krzysztof Paździorny napisał:

bibliotekaZalacznikow = Sfera.PodajObiektTypu<IBibliotekaZalacznikow>(); zalacznikWBibliotece = bibliotekaZalacznikow.Utworz();

A to do czego w sumie służy?

Rozumiem, że błąd wywala na wierszu zapisywania, a nie importowania zdjecia?

Podpiął bym jeszcze metodę WypiszBledy z dokumentacji SDK.

Link to postu
1 godzinę temu, Krzysztof Paździorny napisał:

 

sss.png

Wyrzuca tylko ten wyjątek, WypiszBledy() nic nie wyrzuca.

 

"Rozumiem, że błąd wywala na wierszu zapisywania, a nie importowania zdjecia?"

Dokładnie tak, błąd leci na wierszu zapisywania tylko wtedy jak użyty jest importmediadokument().

 

"System.Data.SqlClient.SqlException: Invalid column name 'Dane'" - problem z bazą?

Edytowane przez Krzysztof Paździorny
Link to postu
×
×
  • Dodaj nową pozycję...