Starší komentáře ke článku: Ukládání obrázků do databáze

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: jeeff

Datum vložení: 20.2.2003 9:57:11

Osobne neviem ake su konvencie v C#, ale v jave sa standardne pisu nazvy tried MojeMenoTriedy (prve pismeno velke) a mena instancii ako mojeMenoTriedy. U vas to zvycajne tiez tak je, az na string ContentType, byte[] Picture_content, ale napriklad MemoryStream stream je uz OK. Neberte to ako kritiku, len ten kod potom krajsie vyzera a ked si na to clovek zvykne tak mu to potom pripada cudne ;-)

Inak podotazka, string v C# nie je objekt, ked sa pise s malymi pismenami? Alebo ako je to s nim??

Avatar

Autor komentáře: Jarda Jirava

Datum vložení: 20.2.2003 10:17:15

Zdravim, jenom doplnim odpoved na Vasi podotazku. V C# je mozne pouzivat jak datovy typ string tak i System.String. string je aliasem pro System.String, je mozne se tez setkat s pojmem simple type (dale jsou to bool, byte, sbyte, char, decimal, atd.). Myslim (alespon jsem se zatim nesetkal s nicim co by tomu odporovalo) muzete pouzit pro deklaraci promenne jak
System.String x = 5;
tak take
string x = 5;
Pokud si potom zkusite vypsat datovy typ pomoci x.GetType(), zjistite, ze obe promenne ukazuji na stejny datovy typ.

Avatar

Autor komentáře: noregret

Datum vložení: 20.2.2003 11:13:33

Moc pekny prispevek, ke kteremu mam pouze jednu pripominku - u rozsahlejsich projektu se nedoporucuje ukladat obrazky do databaze, ale pouze v ni uchovavat referenci na fyzicky soubor nekde na disku.

Avatar

Autor komentáře: Rudolf Dvořáček

Datum vložení: 31.10.2006 11:57:14

Proč?

Avatar

Autor komentáře: gogy

Datum vložení: 3.8.2008 0:08:36

Taky bych rád znal ten argument. Pokud mluvíme o větším projektu, měl by splňovat škálovatelnost. Chcete-li provozovat aplikaci na serverové farmě (NLB cluster), potřebujete sdílené úložiště dat. NTFS nepodporuje vícenásobný přístup, diskový oddíl připojený k více serverům se Vám sesype. Řeší se to aplikační vrstvou tedy databází, případně smb storage (je to ale další role ke clusterování). Pak ještě můžete synchronizovat data na serverech pomocí DFS, což není zrovna spolehlivé. Databáze je nejpoužívanější viz MS Sharepoint Services nebo Portal.

Avatar

Autor komentáře: xsuk

Datum vložení: 20.2.2003 11:40:24

Omlouvam se za off topic, ale mel bych maly dotaz ohledne spousteni ulozenych procedur s parametry.

Vsude se uvadi vyse uvedene spousteni pres command object, nastaveni typu na SP a vytvareni jednoho parametru po druhym pridavanim do command objectu.
napr vyse uvedene:
SqlCommand cmd=new SqlCommand("Add_picture",conn);
cmd.CommandType= CommandType.StoredProcedure;
SqlParameter prm_picture=new sqlParameter("@Picture",SqlDbType.Image);
prm_picture.Value=Picture_content;
cmd.Parameters.Add(prm_picture);
...

Ja mam vyzkousene, ze pokud neuvedu ze se jedna o ulozenou proceduru, muzu parametry dat primo za nazev ulozene procedury a usetrim dost radku kodu (sem holt linej ;o)).
napr:
SqlCommand cmd=new SqlCommand("ClanekDetail " + iClanekID,conn);
nebo
SqlCommand cmd=new SqlCommand("SaveClanek " + iClanekID + ", '" + sNazev + "'",conn);
atd...
Zajimalo by me jestli to ma nejaky vliv na rychlost provadeni (tim ze sql server rovnou nevi ze se jedna o SP) nebo neco dalsiho...
(take abstrahuju od toho, ze musim zdvojit apostrofy v retezcich)

Avatar

Autor komentáře: Jarda Jirava

Datum vložení: 20.2.2003 16:11:01

Zdravim, staci se podivat do Profileru a ten rozdil bude videt. Pokud neuvedete typ Commandu, potom se vse pousti pres exec sp_executesql.
Druhou veci jsou parametry, zkuste si zamenit datove typy napr. misto typu integer si vlozte retezec a porovnejte chybova hlaseni. (V tomto smeru jsem nesel prilis do hloubky, ale podle vracenych udaju je jednou vykonana cesta az na server, ve druhem pripade chybu odhali jiz framework. I kdyz v obou pripadech je to az pri vykonavani "volani" execute).
A jeste jedna poznamka, tak jak to tady pisete, to urcite nefunguje, schazi vam tam totiz prevod na string. To jenom muj postreh (pokud samozrejme nemate iClanekID jako stringovou promennou).

Avatar

Autor komentáře: Honza

Datum vložení: 27.3.2003 10:10:55

Server Error in '/' Application.
--------------------------------------------------------------------------------

Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.

Source Error:


Line 35: "Passport" and "None"
Line 36: -->
Line 37: <authentication mode="Windows" />
Line 38:
Line 39: <!-- APPLICATION-LEVEL TRACE LOGGING


Source File: E:\web\interval\Interval\podklady\kopp\aspx\web.config Line: 37


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.0.3705.288; ASP.NET Version:1.0.3705.288

Avatar

Autor komentáře: Zdenek

Datum vložení: 27.3.2003 11:12:22

Stahnul jsem si zdrojaky, nakopiroval do adresare ve wwwroot, otevrel prohlizecem pres localhost a ono mi to hodilo chybu hned na prvnim radku:

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Could not load type 'PictureToSQL.upload_file'.

Source Error:


Line 1: <%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="false" Inherits="PictureToSQL.upload_file" %>
Line 2: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
Line 3: <HTML>

Co s tim?

Zpět na článek | Úvodní stránka Interval.cz